我尝试在应用程序中更改文件权限。代码如下:
Runtime.getRuntime().exec("chmod 777 /sdcard/test.txt");
此代码不适用于我的应用程序,但没有错误日志。 我还检查了/ system / bin下的shell工具,发现chmod在/ system / bin下,但是其他一些信息显示chmod>工具箱。我不清楚这一点。我的应用程序使用了android:sharedUserId =“android.uid.system”。 如何运行此代码或如何更改文件的权限?非常感谢。
答案 0 :(得分:2)
Runtime rt = Runtime.getRuntime();
Process proc;
try {
proc = rt.exec(new String[] { "su", "-c", "chmod 777 " + Constants.filename });
proc.waitFor();
} catch (Exception e){ //DOSTUFFS }
这应该可以解决问题
答案 1 :(得分:1)
您在测试中使用了路径/sdcard/
- 您的SD卡是否使用支持标准Unix权限的文件系统进行格式化? (FAT没有。)
您没有在字符串中提供chmod(1)
的明确路径 - 您确定chmod(1)
是:
PATH
环境变量设置?您只能更改您拥有的文件的权限;你确定你的应用程序的有效用户ID是否拥有SD卡上的文件?
最后,Android may have additional security restrictions on changing file permissions。我不太熟悉Android,但是更改文件权限位可能需要清单中的条目声明操作,也许更改文件权限只能通过提供的API来完成。