Я пишу приложение, которое может программно очистить кэш приложений всех сторонних приложений, установленных на устройстве. Ниже приведен фрагмент кода для Android 2.2
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
}
}
Мой манифест имеет следующие разрешения:
android.permission.CLEAR_APP_CACHE
android.permission.DELETE_CACHE_FILES
Теперь проблема в том, что имя каталога кэша печатается, но список файлов cachDir.list()
всегда возвращает null. Я не могу удалить каталог кэша, так как список файлов всегда равен null.
Есть ли другой способ очистить кэш приложения?