获取另一个应用程序的缓存目录

时间:2012-12-15 01:13:59

标签: android

我正在开发Android应用程序,其中列出了所有应用程序的缓存目录的路径和大小。 我已经写了一些代码,但现在它崩溃了,我不知道什么是错的。

Context context = createPackageContext(p.applicationInfo.packageName, Context.CONTEXT_INCLUDE_CODE);
items.add(p.applicationInfo.loadLabel(getPackageManager()).toString() + ": " + context.getCacheDir().getName());

p是File的PackageInfo,items是ArrayList。 NullPointerException导致崩溃。 我希望有人可以帮助我!

修改: 这是LogCat:

12-15 02:34:14.507: W/dalvikvm(10789): threadid=1: thread exiting with uncaught exception (group=0x40e34300)
12-15 02:34:14.511: E/AndroidRuntime(10789): FATAL EXCEPTION: main
12-15 02:34:14.511: E/AndroidRuntime(10789): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.alexnavratil.test/com.alexnavratil.test.MainActivity}: java.lang.SecurityException: Requesting code from app.test.com (with uid 10075) to be run in process com.alexnavratil.test (with uid 10104)

我希望这就够了。完整的LogCat非常长。

1 个答案:

答案 0 :(得分:0)

通常,其他apps-data-directories受android操作系统保护。 如果一个没有root权限的Android应用程序被允许读取其他应用程序应用程序缓存,我不是一般的。

要清除应用缓存,有清单权限CLEAR_APP_CACHEDELETE_CACHE_FILES