将Sqlite数据库从资产复制到内部存储(Android + cordova)

时间:2015-01-09 15:25:58

标签: android sqlite cordova

我正在尝试将数据库从资产复制到内部存储,但我使用了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);
    }

0 个答案:

没有答案