【问题标题】:Android how to restore content back to /data/dataAndroid如何将内容恢复到/data/data
【发布时间】:2013-01-11 12:16:17
【问题描述】:

我正在为 root 手机开发一个应用程序,它将备份和恢复所有应用程序及其数据。在我打开该应用程序时将任何应用程序的数据恢复到 /data/data/{packageName} 后,它会崩溃并出现异常 android.database.sqlite.SQLiteReadOnlyDatabaseException: 尝试写入只读数据库,因为我已经复制了它应用程序的数据库文件到 /data/data/{packageName} 目录。

我用来恢复数据的代码:

String packageName = app.getPackageName();
File destinationFile = new File("/data/data/"+packageName);
File sourceFile = new File(Environment.getExternalStorageDirectory()+File.separator+"MyBackup"+File.separator+packageName);

String command = "cp -r "+sourceFile.getAbsolutePath()+File.separator+"* " + destinationFile.getAbsolutePath()+File.separator;
try {
    Runtime.getRuntime().exec(new String[]{"su", command});
} catch (IOException e) {
     e.printStackTrace();
}

谁能告诉我哪里出错了?

【问题讨论】:

    标签: android database command command-prompt database-restore


    【解决方案1】:

    我认为您还必须为/data/ 中的这些文件和目录设置适当的权限和所有者(chownchmod)。

    【讨论】:

    • 哦,对了。我也应该设置文件权限。但是你能告诉我怎么做吗?我试过 this way 但我失败了。
    猜你喜欢
    • 2013-02-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-07-12
    • 1970-01-01
    • 2015-01-18
    • 2019-12-30
    相关资源
    最近更新 更多