java.lang.SecurityException: Neither user xxx nor current process has android.permission.CLEAR_APP_CACHE

264
23 июня 2017, 07:32

Использую android.permission.CLEAR_APP_CACHE в приложении для очистки кэша. На андроид 6+ получаю ошибку:

java.lang.SecurityException: Neither user xxx nor current process has android.permission.CLEAR_APP_CACHE.

Код:

try {
    Class[] classes = new Class[]{Long.TYPE, IPackageDataObserver.class};
    Long maxLong = Long.MAX_VALUE;
    Method method = pm.getClass().getMethod("freeStorageAndNotify", classes);
    method.invoke(pm, maxLong, new CachePackageDataObserver());
} catch (Exception e) {
    e.printStackTrace();
}

Знаю, что CLEAR_APP_CACHE имеет protectionLevel: system или signature. system не подходит (нужны рут права). Как правильно подписать приложение (signature)? Знаю, что для такой подписи нужны 3 файла: signapk.jar, platform.x509.pem, platform.pk8. Вопрос: где мне их взять? Или как сделать чтобы не было такой ошибки?

READ ALSO
Как получить путь классу java?

Как получить путь классу java?

Имею некий обучавшийся проект, где использую большое количество пакетов

250
SVM класификатор

SVM класификатор

В обшем вот код класификатора но он постоянно выкидивает одни и теже данныеДаже кода я изменяю входные вектора

254
Переназначение аппаратных кнопок android(java)

Переназначение аппаратных кнопок android(java)

Я знаю метод для обработки нажатия кнопки Back, есть ли похожие методы для остальных аппаратных кнопок(меню, центральная кнопка, кнопки громкости,...

248
Динамическое добавление элементов к RecyclerView

Динамическое добавление элементов к RecyclerView

Мне нужно добавлять элементы к RecyclerView при нажатии на кнопку без потери данных, но что-то идет не такВ каждом элементе есть EditText и еще один...

392