PackageManager.getPackageSizeInfo(String packageName, IPackageStatsObserver observer)不可用,改为PackageManager.getPackageSizeInfo(String packageName, int userHandle, IPackageStatsObserver observer), 至于增加的参数userHandle的解释是:The user whose size information should be retrieved。下面是PackageManager内部的用法:

    public void getPackageSizeInfo(String packageName, IPackageStatsObserver observer) {        getPackageSizeInfo(packageName, UserHandle.myUserId(), observer);    }

因此,把UserHandle.myUserId()的实作部分整合进来就可用了:

    private void getPacakgeStats(String pkgName) {        if (pkgName != null) {            try {                Method getPackageSizeInfo = mPm.getClass().getDeclaredMethod("getPackageSizeInfo", String.class,                        int.class, IPackageStatsObserver.class);                /**                 * after invoking, PkgSizeObserver.onGetStatsCompleted() will be called as callback function. <br>                 * About the third parameter ‘Process.myUid() / 100000’,please check:                 * <android_source>/frameworks/base/core/java/android/content/pm/PackageManager.java:                 * getPackageSizeInfo(packageName, UserHandle.myUserId(), observer);                 */                getPackageSizeInfo.invoke(mPm, pkgName, Process.myUid() / 100000, new PkgSizeObserver());            } catch (Exception e) {                Log.e(TAG, e.toString());            }        }    }



更多相关文章

  1. android4.2上获取应用程序大小的变更点
  2. 49.Android中各种Span的用法
  3. Android(安卓)FAILURE: Build failed with an exception.
  4. Android(安卓)7.0 如何去掉灭屏动画
  5. android:installLocation 用法科普
  6. Android(安卓)android:exported = true 用法详解
  7. repo用法详解
  8. Android(安卓)之 shape和selector用法介绍
  9. Android(安卓)之 shape和selector用法介绍

随机推荐

  1. MySQL多表连接的入门实例教程
  2. MySql5.x升级MySql8.x的方法步骤
  3. mysql存储过程之返回多个值的方法示例
  4. MySql Installer 8.0.18可视化安装教程图
  5. mysql存储过程之创建(CREATE PROCEDURE)和
  6. mysql存储过程之引发存储过程中的错误条
  7. Linux下安装MySQL8.0.11的教程
  8. CentOS7下 MySQL定时自动备份的实现方法
  9. mysql 8.0.18各版本安装及安装中出现的问
  10. Windows下mysql-5.7.28下载、安装、配置