我需要显示手机中安装的每个应用程序的大小!我怎样才能做到这一点?我试过这个:
PackageStats ps = new PackageStats(packageInfo.packageName);
int size = ps.codeSize;
我每次都得到0值。请帮帮我
答案 0 :(得分:0)
不幸的是,目前还没有正式的方法可以做到这一点。然而, 你可以调用PackageManager的隐藏getPackageSize方法 将PackageStats和IPackageStatsObserver AIDL导入我们的 项目并生成存根。然后,您可以使用反射来调用 getPackageSize:
PackageManager pm = getPackageManager(); Method getPackageSizeInfo = pm.getClass().getMethod( "getPackageSizeInfo", String.class, IPackageStatsObserver.class); getPackageSizeInfo.invoke(pm, "com.android.mms", new IPackageStatsObserver.Stub() { @Override public void onGetStatsCompleted(PackageStats pStats, boolean succeeded) throws RemoteException { Log.i(TAG, "codeSize: " + pStats.codeSize); } });
这显然是一个大黑客,不应该用于公众 应用
Android包大小使用AIDL与Eclipse和ADT APK盗版:使用 私人代码& Android中的资源
然后,您需要遍历每个应用程序并将包名称放在invoke(...)方法中。