Android 如何在SD卡上创建sqlite数据库
在我的应用程序中,我使用一个sqlite数据库,该数据库当前正在手机内存中创建,可以在SD卡上创建数据库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
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);