目标和环境
最近项目中需要事实存储监测的数据,于是使用SQLiteOpenHelper来实现。事后又要导出到分析软件分析,所以必须将db文件放到指定的位置。SQLiteOpenHelper默认的位置只有app自己访问,想导出来很麻烦。一番搜索和试错后,终于实现功能。手机版本是android6.0,studio3.5.2。
虽然csdn上面能看到不少相关的文章,奈何google更猛。所以好多文章照着做也是失败。最后终于在stackoverflow这个问题下面k3b大佬的回复找到了解决方法。
代码
自己写的SQLiteOpenHelper类中间要有如下的改动:
public class DatabaseHelper extends SQLiteOpenHelper {
private static final int DATABASE_VERSION = 3;
.....
DatabaseHelper(final Context context, String databaseName) {
super(new DatabaseContext(context), databaseName, null, DATABASE_VERSION);
}
}
创件一个DatabaseContext类继承ContextWrapper并重写getDatabasePath和openOrCreateDatabase
class DatabaseContext extends ContextWrapper {
priv