答案 0 :(得分:0)
不确定是否是最佳解决方案,但您应该traverse through folders并累积其大小。应用通常存储在:
Internal/SD card -> Android
答案 1 :(得分:0)
下面的代码很有用
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);
}
});
更多详情here
答案 2 :(得分:0)
您可以查看有关StorageStatsManager.queryStatsForPackage的详细信息
注意:为您自己的程序包调用此API时不需要权限。但是,请求其他任何软件包的详细信息都需要android.Manifest.permission#PACKAGE_USAGE_STATS权限,这是系统级别的权限,不会授予普通应用程序。声明权限表示您打算使用此API,最终用户可以选择通过“设置”应用程序授予此权限。