我正在尝试将数据库从资产复制到内部存储,但我使用了java android(" copy database")和cordova(" call& read& wirte database")。此外,模拟器中的一切都是正确的,我可以在数据库中检索表的数据,但是当我运行手机或平板电脑时,没有识别表并检索数据但是我确信复制数据库已经完成,因为我已经完成导出调用数据库之前的SD卡。我想需要获得许可,我不知道这个问题。
特点: - cordova 3.4.0.js -cordova-2.7.0.jar
有两个文件:
/ data / data / [包名] /app_webview/databases/Databases.db
/ data / data / [包名] / app_webview / databases / file__0 / 1
在MainActivity.java
private String filepath = "webview";
ContextWrapper contextWrapper = new ContextWrapper(getApplicationContext());
File directory = contextWrapper.getDir(filepath, Context.MODE_PRIVATE);
File CheckDirectory;
CheckDirectory = new File("/data/data/com.example.sample/app_webview/databases/");
CheckDirectory.mkdirs();
CheckDirectory = new File("/data/data/com.example.sample/app_webview/databases/file__0/");
CheckDirectory.mkdirs();
this.copy("Databases.db", "/data/data/com.example.sample/app_webview/databases/");
//this.copy("Databases.db-journal", "/data/data/com.example.sample/app_webview/databases/");
this.copy("1", "/data/data/com.example.sample/app_webview/databases/file__0/");
super.onCreate(savedInstanceState);
super.loadUrl("file:///android_asset/www/index.html");
在index.html中
document.addEventListener("deviceready", successCB, false);
function successCB() {
var db = window.openDatabase("Database", "1.0", "Saeed", 200000);
db.transaction(queryDB, errorCB);
}
function queryDB(tx) {
tx.executeSql('SELECT * FROM TEST', [], querySuccess, errorCB);
}