如何在sdcard上直接存储sqlite数据库

Shi*_*hiv 20 sqlite android android-sqlite

我想在sdcard而不是默认路径中创建我的sqlite数据库...我想从sdcard访问我的所有数据我也使用此代码:

            private static class OpenHelper extends SQLiteOpenHelper {

    OpenHelper(Context context) {
        super(context, DATABASE_NAME, null, DATABASE_VERSION);
        SQLiteDatabase.openOrCreateDatabase("/sdcard/"+DATABASE_NAME,null);

    }

    @Override
    public void onCreate(SQLiteDatabase db) {
        db.execSQL("CREATE TABLE "
                + TABLE_NAME
                + " (id INTEGER PRIMARY KEY, name TEXT, number TEXT, skypeId TEXT, address TEXT, image BLOB)");
    }

    @Override
    public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
        db.execSQL("DROP TABLE IF EXISTS " + TABLE_NAME);
        onCreate(db);
    }
}
Run Code Online (Sandbox Code Playgroud)

问题:

当我在默认路径中看到数据库文件时,我可以看到所有数据和表,但是当我看到在SD卡中创建的数据库文件时,它不会显示任何数据,但它只显示数据库文件

在构造函数中,它只在sdcard中创建文件,但在默认路径中它可以很好地完成所有工作.....如何在SD卡上存储所有Sqlitedata以便进一步访问?

kol*_*aTM 43

我创建了我的数据库

    public DatabaseHelper(final Context context) {
    super(context, Environment.getExternalStorageDirectory()
            + File.separator + FILE_DIR
            + File.separator + DATABASE_NAME, null, DATABASE_VERSION);
}
Run Code Online (Sandbox Code Playgroud)

并且没有进一步的问题.我猜你对super()的调用也应该引用sdcard.