Android如何将内容恢复回/ data / data

时间:2013-01-28 07:22:15

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

我正在为root手机开发一个应用程序,它将备份和恢复所有应用程序及其数据。当我打开该应用程序将任何应用程序的数据恢复到/ data / data / {packageName}后,它崩溃,异常 android.database.sqlite.SQLiteReadOnlyDatabaseException:尝试编写只读数据库,因为我复制了该数据库app的数据库文件到/ 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();
}

任何人都可以告诉我哪里出错了?

1 个答案:

答案 0 :(得分:1)

我认为您还必须在chown中设置这些文件和目录的相应权限和所有者(chmod/data/)。