當然可以,這樣的工作對我來說沒有root權限:
File Db = new File("/data/data/your.package/databases/yourdatabasename");
Date d = new Date();
File file = new File("your_destination.db");
file.setWritable(true);
copyFile(new FileInputStream(Db), new FileOutputStream(file));
複製文件是這樣的功能,並在兩個方向上DB->文件和文件 - >工作DB:
public static void copyFile(FileInputStream fromFile, FileOutputStream toFile) throws IOException {
FileChannel fromChannel = null;
FileChannel toChannel = null;
try {
fromChannel = fromFile.getChannel();
toChannel = toFile.getChannel();
fromChannel.transferTo(0, fromChannel.size(), toChannel);
} finally {
try {
if (fromChannel != null) {
fromChannel.close();
}
} finally {
if (toChannel != null) {
toChannel.close();
}
}
}
}
以編程方式在SD文件夾上創建sqlite,那麼您將不需要root用戶的設備。如果你已經創建了一個sqlite數據庫,那麼如果你有有限的表,那麼創建一個代碼,它將讀取這些表中的值,並在SD卡的另一個位置創建它們的副本。 – Kedarnath
@Kedarnath謝謝你的評論,你知道如何在指定位置創建數據庫嗎?目前我的數據庫類正在擴展SQLiteOpenHelper – user3524019
http://stackoverflow.com/a/7227851/3330969 – Kedarnath