2012-12-15 2 views
1

나는 모든 응용 프로그램의 캐시 디렉토리 경로와 크기를 나열하는 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이 발생하여 충돌이 발생합니다. 누군가 나를 도울 수 있기를 바랍니다.

편집

:이 충분 희망

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

이 대답이 당신에게 주어집니다 매니페스트-권한이있는 응용 프로그램 캐시를 지우려면 - 당신은 따라서 자신의 응용 프로그램 충돌 이외의 다른 사용자 ID를 가진 설치된 응용 프로그램을 실행하려고 ! 뿌리를 내리고'su'를 호출하면 작동 할 수 있지만 정상적인 * 비 루트 사용자 - 두려운가 ... – t0mm13b

답변

0

일반적으로 다른 apps-data-directories는 android opereating system으로 보호됩니다. 뿌리깊은 안드로이드 앱이 다른 앱 앱 캐시를 읽을 수 없다면 나는 shure하지 않습니다.

CLEAR_APP_CACHEDELETE_CACHE_FILES

+0

하지만 플레이 저장소에는 캐시 정리 프로그램이 있으며 캐시 디렉토리에 대한 액세스 권한도 있습니다. . 시스템 앱을 제외하고 설치된 각 앱의 캐시를 삭제하고 싶습니다. 어떻게해야합니까? – alexnavratil

+0

내 대답은 – k3b

+0

입니다. 이미이 권한을 설정했습니다. 나는 내 애플 리케이션 내부 애플 리케이션을 실행할 수 없기 때문에 그것은 충돌이 있다고 생각합니다. 나는 그것이 잘못된 코드라고 생각하지만 캐시 디렉토리를 얻는 방법을 모른다. 하지만 난 그냥 안드로이드/데이터//캐시 생각합니다. 나는이 방법을 시도 할 것이다. – alexnavratil

관련 문제