Я создал приложение, которое позволит пользователю устанавливать различные темы для устройства 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 не изменилось.
У меня нет другого способа изменить разрешение файла.