http://www.reigndesign.com/blog/using-your-own-sqlite-database-in-android-applications/
この男は、Android システム パスについて次のように語っています。
//アプリケーション データベースの Android のデフォルト システム パス。
private static String DB_PATH = "/data/data/YOUR_PACKAGE/databases/";
そしてここ:sqliteデータベースに関する他の多くのリンクのDB_PATH = "/data/data/com.android.example/databases/"。
問題は、eclipse (mac osx 10.7) がデータ ディレクトリを作成せず、motorola xoom (Android 4.0.3 - アイス クリーム サンドイッチ) でデフォルトのシステム パスを特定できないことです。Astro ファイル マネージャーを使用して /data/data/... を参照しているものは見当たりません。
私はMacを使用しているので、Androidファイルシステムアプリを使用して、apkファイルをEclipseワークスペースからmotorola xoomに転送する必要がありました。私の質問の1つは、これを置くのに適切な場所はどこですか、それとも重要ですか?
上記のリンクで説明されているように、Sqlite データベース ブラウザーを既にダウンロードして、データベースをいっぱいにしました。私は主キーを持っていません。.db ファイルをプロジェクトのアセット フォルダーにコピーしました。これもリンクの状態です。
また、私のデータベースはすでにテーブルで作成されているので、本当に私がする必要があるのは(私が推測する)誰もがいつも言及しているそのデータディレクトリにテーブルをコピーすることだけです。
これまでの私のコード:
public class DatabaseHelper extends SQLiteOpenHelper {
private Context myDbContext;
private static String dbName = "restaurant";
public DatabaseHelper(Context context){
super(context, dbName, null, 1);
this.myDbContext = context;
}
@Override
public void onCreate(SQLiteDatabase db) {
//need to take input from local database and copy it
//but where do i copy the information to? what path should i use?
}
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
Log.w(DatabaseHelper.class.getName(), "upgrading database/changing database which will remove all old data!");
db.execSQL("drop table if exists menu");
db.execSQL("drop table if exists items");
db.execSQL("drop table if exists server");
onCreate(db);
}
}