Piszę aplikację, która może programowo wyczyścić pamięć podręczną aplikacji wszystkich aplikacji firm trzecich zainstalowanych na urządzeniu. Poniżej znajduje się fragment kodu dla Androida 2.2Jak mogę wyczyścić pamięć podręczną aplikacji dla systemu Android?
public static void trimCache(Context myAppctx) {
Context context = myAppctx.createPackageContext("com.thirdparty.game",
Context.CONTEXT_INCLUDE_CO|Context.CONTEXT_IGNORE_SECURITY);
File cachDir = context.getCacheDir();
Log.v("Trim", "dir " + cachDir.getPath());
if (cachDir!= null && cachDir.isDirectory()) {
Log.v("Trim", "can read " + cachDir.canRead());
String[] fileNames = cachDir.list();
//Iterate for the fileName and delete
}
}
Mój manifest ma następujące uprawnienia:
android.permission.CLEAR_APP_CACHE
android.permission.DELETE_CACHE_FILES
Teraz problem jest, że nazwa katalogu pamięci podręcznej jest drukowana, ale lista plików cachDir.list()
zawsze zwraca wartość null. Nie mogę usunąć katalogu pamięci podręcznej, ponieważ lista plików jest zawsze pusta.
Czy istnieje inny sposób wyczyszczenia pamięci podręcznej aplikacji?
Nie potrzebujesz do tego urządzenia zrootowanego? –