renameTo(Filedest)方法的作用是,重新命名此抽象路径名表示的文件你用这个只是将该文件换了一个路径,也就是换了一个位置而已,并不是复制。你要复制的话,貌似只能新建一个文件,该文件的路径是将原文件复制到的路径;然后将旧文件的内容读出来,写入到新文件中去,这样就实现了文件的复制
Runtime runtime = Runtime.getRuntime();
runtime.exec("chmod 777 "+"<指定路径>");
注意命令chmod 777 后面要带上空格,否则会无效
请参考
publicclass MainActivity extends Activity{
publicvoid onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
String apkRoot="chmod 777 "+getPackageCodePath();
SystemManager.RootCommand(apkRoot);
}
}
当然,运行的程序本身要有root权
activity onCreate()方法里加入
try {
Runtime.getRuntime().exec("chmod 644 " + "/storage/sdcard0/ccfile/tttro.apk");
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
如果不行,那就是父目录无权限
Runtime.getRuntime().exec("cd " + "/storage/");
Runtime.getRuntime().exec("chmod 777 " + "./");
也就是说你的权限可能要一级一级目录的设置
因为如果你的父目录无权限的话,那么直接设置子目录权限 也是没有用的
使用shell命令