私はphonegap 1.3.0に取り組んでいます。data/data/(パッケージ名)/test.db に保存されている phonegap に test.db という名前のデータベースを作成しました。データベースをsdcard(mnt/sdcard)にコピーするために、ネイティブのAndroidコードを使用しています。しかし、test.dbが存在しないというエラーが発生しています。デバイスがルート化されていません。私は何が欠けていますか?
前もって感謝します。
コードは次のとおりです->
public void copyfile(String srFile, String dtFile) throws FileNotFoundException{
String DBPATH = "/data/data/package_name/databases/";
String DBNAME = "test.db";
String myPath = DBPATH + DBNAME;
//Open your local db as the input stream
File externalStorage = Environment.getExternalStorageDirectory();
InputStream myInput = new FileInputStream(myPath);
// Path to the just created empty db
String outFileName = "/mnt/sdcard/folder/test.db";
//Open the empty db as the output stream
OutputStream myOutput;
try {
myOutput = new FileOutputStream(outFileName);
//transfer bytes from the inputfile to the outputfile
byte[] buffer = new byte[1024];
int length;
while ((length = myInput.read(buffer))>0){
myOutput.write(buffer, 0, length);
}
//Close the streams
myOutput.flush();
myOutput.close();
myInput.close();
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
phonegap コードは次のとおりです。
<!DOCTYPE html>
<script type="text/javascript" charset="utf-8" src="phonegap-1.3.0.js"></script>
<script type="text/javascript" charset="utf-8">
db = window.openDatabase("test", "1.0", "PhoneGap Demo", 200000);
function createDB() {
db.transaction(populateDB);
}
function populateDB(tx) {
Field17=document.form.Field17.value;
Field18=document.form.Field18.value;
Field19=document.form.Field19.value;
//tx.executeSql('DROP TABLE IF EXISTS INFO');
tx.executeSql('CREATE TABLE IF NOT EXISTS INFO (pid integer primary key, field17,field18,field19');
sql = "INSERT INTO INFO (field17,field18,field19) VALUES ( '" + Field17 + "','" + Field18 + "','" + Field19 + "')";
tx.executeSql(sql);
db.transaction(queryDB);
}
function queryDB(tx,results) {
console.log("inside querydb");
tx.executeSql('SELECT * FROM INFO', [], querySuccess);
}
function querySuccess(tx, results) {
var len = results.rows.length;
alert('rows inserted: ' + len);
if (len > 0) {
for (var i=0;i<len;i++) {
console.log('pid: ' + results.rows.item(i).pid + 'field: ' + results.rows.item(i).field17 + ' field: ' + results.rows.item(i).field18+ ' field ' + results.rows.item(i).field19);
}
}
}
</script>