您的位置:首页 > 移动开发 > Android开发

android创建sqlite数据库及在SD卡上创建数据库(二)

2012-12-23 17:01 267 查看
转自:http://blog.csdn.net/chthq/article/details/7838033

二、在SD卡上创建数据库

通过android的SQLiteOpenHelper类的源码,可以看到SQLiteOpenHelper类的getWritableDatabase

这个接口实际上调用的是Context的openOrCreateDatabase方法,而这个方法是不支持带路径的数据库名

称的,也就是说,用这个方法创建的数据库只能放在/data/data/包名称/ 目录下;要想在SD卡上创建数据库

,我们可以调用SQLiteDatabase类的openOrCreateDatabase方法,这个方法是支持带路径的数据库名称的。

那么下面的问题就是如何判断是否存在SD卡,已经如何获取SD卡的路径了?

判断是否存在SD卡:

android.os.Environment.MEDIA_MOUNTED.equals(

android.os.Environment.getExternalStorageState());

获取SD卡路径:String dbPath=android.os.Environment.getExternalStorageDirectory()

.getAbsolutePath();

在SD卡上创建数据库方法如下:

String dbPath=android.os.Environment.getExternalStorageDirectory()

.getAbsolutePath()+"/database";

File dbp=new File(dbPath);

File dbf=new File(dbPath+"/"+"test.db");

if(!dbp.exists()){

dbp.mkdir();

}

//数据库文件是否创建成功

boolean isFileCreateSuccess=false;

if(!dbf.exists()){

try{

isFileCreateSuccess=dbf.createNewFile();

}

catch(IOException ioex){

}

}

else{

isFileCreateSuccess=true;

}

if(isFileCreateSuccess)

db = SQLiteDatabase.openOrCreateDatabase(dbf, mFactory);

为了简便起见,我们可以用上述方法重写SQLiteOpenHelper类的getWritableDatabase方法,

其他逻辑参照SQLiteOpenHelper类即可。最后别忘了,加入SD卡的读写权限:

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: