我正在开发系统应用,我必须将属于另一个系统应用的xml文件复制到 rooted 电话。 首先,我尝试在命令提示符中使用 adb shell 和命令
执行此操作cp /data/data/owner_app_pkg_name/shared_prefs/file.xml /storage/sdcard0/FOLDERNAME/file2.xml
效果很好。
但是,当我尝试在我的系统应用中以编程方式执行相同操作时,使用
Process p = Runtime.getRuntime().exec("cp /data/data/owner_app_pkg_name/shared_prefs/file.xml /storage/sdcard0/FOLDERNAME/file2.xml");
它不起作用。
此外,如果我通过系统的命令提示符在同一目录中创建了file.xml的副本,那么然后使用我的应用程序中的代码>复制文件的名称,它有效。
有人可以告诉我我要做什么来直接将所有者系统应用使用的file.xml复制到我想要的位置,使用 my <的java代码如上所述,strong>系统应用程序?
答案 0 :(得分:0)
public void copyFile() throws IOException {
InputStream inStream = new FileInputStream(new File("/data/data/owner_app_pkg_name/shared_prefs/file.xml"));
OutputStream outStream= new FileOutputStream(new File("/storage/sdcard0/FOLDERNAME/file2.xml"));
// Transfer bytes from in to outStream
byte[] buf = new byte[1024];
int len;
while ((len = inStream.read(buf)) > 0) {
outStream.write(buf, 0, len);
}
inStream.close();
outStream.close();
}
答案 1 :(得分:0)
使用命令
解决了我的问题adb shell
chmod 666 /data/data/owner_app_pkg_name/shared_prefs/file.xml
然后运行我的应用。但是如何从我的应用程序本身的java代码运行chmod命令?