调用SQLiteDatabase类的openOrCreateDatabase方法,此方法支持创建带路径的数据库名称。
二、创建步骤1. 判断是否存在SD卡
android.os.Environment.MEDIA_MOUNTED.equals(android.os.Environment.getExternalStorageState())
//获取SD卡路径:
String dbPath=android.os.Environment.getExternalStorageDirectory()
.getAbsolutePath()
2. 在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卡的读写权限。
可以按以下步骤进行:Android应用的数据库一般都是私有的,其他应用无法访问,那么怎么在手机已root的前提下,在自己的应用中读取指定应用中的数据信息呢,现提供一种思路。
以uc浏览器历史浏览记录为例:
一:对手机进行root。
某些厂家的Android设备是支持在系统设置中一键root的,如魅族手机。更通用的情况下一般是用第三方软件进行root,如KingRoot。
二:在手机上安装RootExplorer。
RootExplorer是在Android上使用很方便的文件浏览器,借用它,我们可以找到uc浏览器的历史记录数据库所在为data/data/com.UCMobile/databases/history/history。
三:将数据库文件复制到sd卡指定目录。
四:从sd卡数据库文件中读取数据。
五:将数据加载到Recyclerview中展示。
至此,我们已经实现了在自己应用中读取其他应用数据库数据的一个完整过程,诚然这种方式存在许多局限性,但不失为解决方案的一种。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)