Изменение значков laucher и установка полного разрешения для файла - PullRequest
1 голос
/ 28 марта 2012

Я создал приложение, которое позволит пользователю устанавливать различные темы для устройства Android ICS.

После применения темы значки запуска должны смениться со значков по умолчанию на значки темы.

Для этого я сохраняю ресурсы темы (значки приложений) во временную папку и обновляю панель запуска.

В IconCache.java (где значки назначаются для приложений) Я проверяю текущую тему. Если это не тема по умолчанию, я получаю значки из временной папки, созданной при применении темы, и назначаю ее приложениям. Если в теме нет значка для определенного приложения, ему будет назначен значок по умолчанию.

Проблема, с которой я сталкиваюсь, заключается в том, что некоторые значки приложений не обновляются, и они также не исправлены для конкретного приложения. Иногда это не будет обновлять приложение Mms. Иногда он не обновляет телефон. Иногда он не обновляет браузер и т. Д. В некоторых случаях обновляются все значки, а в некоторых - нет.

Итак, я распечатал разрешение для файлов значков в назначенной области. Я обнаружил, что если приложение не обновляется с помощью значков тем, то эти файлы значков не имеют разрешения на чтение / запись / выполнение. Но файлы значков существуют во временной папке. Изменяющиеся значки имеют эти разрешения.

Поэтому я пытаюсь добавить разрешение для каждого файла, хранящегося во временной папке, используя

Runtime.getRuntime().exec("chmod 777 " + iconFile); //iconFile = /data/data/com.mytheme/message.jpg

Это не сработало, поэтому я попытался с Runtime.getRuntime().exec("su chmod 777 " + iconFile);

Это тоже не сработало. Я пробовал с iconFile.setWritable(true) iconFile.setReadable(true) iconFile.setExecutable(true) тогда и разрешение Iconfile не изменилось.

У меня нет другого способа изменить разрешение файла.

...