我正在为有根手机开发一个应用程序,它将备份和恢复所有应用程序及其数据。在我打开该应用程序时将任何应用程序的数据恢复到 /data/data/{packageName} 后,它会崩溃并出现异常android.database.sqlite.SQLiteReadOnlyDatabaseException:由于我已将该应用程序的数据库文件复制到 /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();
}
谁能告诉我我哪里错了?