我创建了一个应用程序,允许用户为ICS安卓设备设置不同的主题。
应用主题后,启动器图标应从默认图标更改为主题图标。
为此我将主题资源(应用程序图标)保存到临时文件夹并刷新启动器。
在IconCache.java中(图标分配给应用程序)我正在检查当前主题。如果它不是'默认主题',那么我将从应用主题并将其分配给应用程序时创建的临时文件夹中获取图标。如果主题没有特定应用程序的图标,则会分配默认图标。
我面临的问题是某些应用程序图标没有更新,也没有为特定应用程序修复。有时它不会更新Mms应用程序。有时它不会更新手机。有时它不会更新浏览器等。在某些情况下,它会更新所有图标,在某些情况下它将不会更新。
所以我在分配区域打印了Icon文件的权限。我发现如果应用程序没有使用主题图标进行更新,那么这些图标文件就没有读/写/执行权限。但Icon文件存在于临时文件夹中。更改图标具有这些权限。
所以我尝试使用
添加临时文件夹中存储的每个文件的权限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的权限也没有改变。
我没有任何其他方法来更改文件的权限。