我的代码:
File dir = Environment.getExternalStoragePublicDirectory( Environment.DIRECTORY_DOWNLOADS );
File src = new File(dir, "test.dat");
File dst = new File(dir, "test_2.dat");
if ( src.exists() )
{
try
{
Process process = Runtime.getRuntime().exec( new String[] {"cp", "-f", src.getAbsolutePath(), dst.getAbsolutePath()} );
process.waitFor();
}
catch (IOException e)
{
e.printStackTrace();
}
catch (InterruptedException e)
{
e.printStackTrace();
}
}
此代码适用于三星Galaxy S3上的(复制文件),但不适用于亚马逊Kindle Fire:
java.io.IOException:运行exec()时出错。命令:[cp,-f, /mnt/sdcard/Download/test.dat,/mnt/sdcard/Download/test_2.dat] 工作目录:null环境:null
为什么会这样?以及如何在所有设备上执行此命令副本?
答案 0 :(得分:0)
一般情况下它不起作用,因为Android应用程序没有访问下载目录的权限。或者可能是因为它无法访问/ bin / cp。如果你认为你的手机是root,它会工作。从adb shell
提示符处尝试相同的操作,以便了解它为什么不起作用。
答案 1 :(得分:0)
我在替换bootanimation.zip方面遇到了类似的问题,这就是我修复它的方法。希望它对某人有所帮助。
Runtime.getRuntime().exec("mount -o remount,rw system /system");
Runtime.getRuntime().exec("cp /storage/emulated/0/bootanimation/bootanimation.zip /system/media/bootanimation.zip");
Runtime.getRuntime().exec("chmod 644 /system/media/bootanimation.zip");
Runtime.getRuntime().exec("mount -o remount,ro system /system");