这种方式通常连接一个外部的数据库,第一个参数就是数据库文件,这个数据库不是当前项目中生成的,通常放在项目的Assets目录下,当然也可以在手机内,如上面参数那个目录,前提是那个文件存在且你的程序有访问权限。
另一种使用数据库的方式是,自己创建数据库并创建相应的数据库表,参考下面的代码:
public class DatabaseHelper extends SQLiteOpenHelper {
//构造,调用父类构造,数据库名字,版本号(传入更大的版本号可以让数据库升级,onUpgrade被调用)
public DatabaseHelper(Context context) {
super(context, DatabaseConstant.DATABASE_NAME, null, DatabaseConstant.DATABASE_VERSION)
}
//数据库创建时调用,里面执行表创建语句.
@Override
public void onCreate(SQLiteDatabase db) {
db.execSQL(createVoucherTable())
}
//数据库升级时调用,先删除旧表,在调用onCreate创建表.
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
db.execSQL("DROP TABLE IF EXISTS " + DatabaseConstant.TABLE_NAME)
onCreate(db)
}
//生成 创建表的SQL语句
private String createVoucherTable() {
StringBuffer sb = new StringBuffer()
sb.append(" CREATE TABLE ").append(DatabaseConstant.TABLE_NAME).append("( ").append(“ID”)
.append(" TEXT PRIMARY KEY, ")
.append(“USER_ID”).append(" INTEGER, ").append(“SMS_CONTENT”).append(" TEXT ) ")
return sb.toString()
}
}
继承SQLiteOpenHelper并实现里面的方法.
之后:
//得到数据库助手类
helper = new DatabaseHelper(context)
//通过助手类,打开一个可读写的数据库连接
SQLiteDatabase database = helper.getReadableDatabase()
//查询表中所有记录
database.query(DatabaseConstant.TABLE_NAME, null, null, null, null, null, null)
可以按以下步骤进行:Android应用的数据库一般都是私有的,其他应用无法访问,那么怎么在手机已root的前提下,在自己的应用中读取指定应用中的数据信息呢,现提供一种思路。
以uc浏览器历史浏览记录为例:
一:对手机进行root。
某些厂家的Android设备是支持在系统设置中一键root的,如魅族手机。更通用的情况下一般是用第三方软件进行root,如KingRoot。
二:在手机上安装RootExplorer。
RootExplorer是在Android上使用很方便的文件浏览器,借用它,我们可以找到uc浏览器的历史记录数据库所在为data/data/com.UCMobile/databases/history/history。
三:将数据库文件复制到sd卡指定目录。
四:从sd卡数据库文件中读取数据。
五:将数据加载到Recyclerview中展示。
至此,我们已经实现了在自己应用中读取其他应用数据库数据的一个完整过程,诚然这种方式存在许多局限性,但不失为解决方案的一种。
可以连接android手机本地的sqlite,如果 想从电脑中的数据库取数据,必须在服务器编写访问数据库代码,然后通过http协议或其他协议返回一个页面,android客户端从页面中取数据,常用的 http协议 返回json格式欢迎分享,转载请注明来源:内存溢出
评论列表(0条)