将系统应用程序的文件复制到另一个位置时出错

时间:2013-12-04 11:59:47

标签: java android

我正在开发系统应用,我必须将属于另一个系统应用的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>系统应用程序?

2 个答案:

答案 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命令?