Android 如何在SD卡上创建sqlite数据库

Android 如何在SD卡上创建sqlite数据库,android,sqlite,Android,Sqlite,在我的应用程序中,我使用一个sqlite数据库,该数据库当前正在手机内存中创建,可以在SD卡上创建数据库 public class DbHelper extends SQLiteOpenHelper { static String DATABASE_NAME="contiDB.db"; public static final String CONTI="turni"; public static final String CONTI_ID="idturno"; p

在我的应用程序中,我使用一个sqlite数据库,该数据库当前正在手机内存中创建,可以在SD卡上创建数据库

public class DbHelper extends SQLiteOpenHelper {
    static String DATABASE_NAME="contiDB.db";
    public static final String CONTI="turni";
    public static final String CONTI_ID="idturno";
    public static final String ANNO="anno";
    public static final String MESE="mese";
    public static final String DATA="data";


    public DbHelper(Context context) {
        super(context, DATABASE_NAME, null, 1);

    }

    @Override
    public void onCreate(SQLiteDatabase db) {
        String CREATE_TABLE="CREATE TABLE "+CONTI+" ("+CONTI_ID+" INTEGER PRIMARY KEY,"+DATA+" NUMERIC,"+MESE+" TEXT,"+ANNO+" NUMERIC)";
        db.execSQL(CREATE_TABLE);

实际上,数据库是在/data/data/your.app.name/databases/your.db中创建的,
但您可以指定sd卡的路径

public static final String  DATABASE_FILE_PATH = Environment.getExternalStorageDirectory();
简言之:

  • 在清单文件中设置此权限:

    <!-- To write and read to and from SDCard -->  
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
    
  • 打开数据库(getWitableDatabase、getReadableDatabase)时,请指定路径:

    database = SQLiteDatabase.openDatabase(DATABASE_FILE_PATH
        + File.separator + DATABASE_NAME, null,SQLiteDatabase.OPEN_READWRITE);
    

    分别

[编辑]


请注意,WRITE_EXTERNAL_存储包括READ_EXTERNAL_存储,因此,无需指定此存储。

我想在外部sd卡上创建数据库,您可以这样做吗?实际上,数据库是在
/data/data/your.app.name/databases/your.db
中创建的,但您可以指定sd卡的路径,正如在这个回答中所解释的:谢谢你的回复,我看到了那个帖子,但可能是因为我的英语很差,我不知道该怎么做。
database = SQLiteDatabase.openDatabase(DATABASE_FILE_PATH
    + File.separator + DATABASE_NAME, null,SQLiteDatabase.OPEN_READONLY);