必要: 携帯電話にインストールされている各アプリケーションの占有キャッシュ サイズを取得しようとしているだけです。
私のアプローチ:
PackageManager packageManager = getPackageManager();
List<ApplicationInfo> packages = packageManager.getInstalledApplications(PackageManager.GET_META_DATA);
for (ApplicationInfo packageInfo : packages)
{
try
{
Context mContext = createPackageContext(packageInfo.packageName, CONTEXT_IGNORE_SECURITY);
File cacheDirectory = mContext.getCacheDir();
if(cacheDirectory==null)
{
cacheArrayList.add("0");
}
else
{
cacheArrayList.add(String.valueOf(cacheDirectory.length()/1024));
}
}
catch (NameNotFoundException e)
{
e.printStackTrace();
}
}
結果: ディレクトリが null の場合、(条件として) 0 が返されます。ただし、ディレクトリが存在する場合は、常に 4 Kb を返します。プロセスに従って、アプリのキャッシュをチェックアウトしました。
設定:->アプリ:->アプリケーション名
しかし、そこに 0B が見つかりました。
なぜそれが起こっているのか、誰かが説明できますか? キャッシュの正確なサイズを取得するにはどうすればよいですか?