前言
今天大佬让我把创建的数据库存储路径改为 SD 下,自信满满低改了结果崩溃,在此记录一下。
正文
我们创建数据库一般就是集成 SQLiteHelper ,在构造方法把 DB_NAME
传进入,就会默认在 data/data/<`package_name>/database/ 下创建,在里面的文件也相对有安全性,删除应用的时候也会一起删除掉。但是总会遇到不同的需求场景。然后今天我就躺了一下小坑。
找了一下很简单能找到 openOrCreateDatabase(…)这个方法,可以在指定路径下创建,就连 SQLiteHelper 本身也是调用他的,只不过把路径写死了。
然后我尝试了一下:
String path = Environment.getExternalStorageDirectory().getAbsolutePath()+"/AAA/aaa.db";
SQLiteDatabasemDb = SQLiteDatabase.openOrCreateDatabase(path ,null);
满心欢喜,结果,哎呀,报错了:
SQLiteCantOpenDatabaseException: unknown error (code 14): Could not open database
然后一想,没加权限。手动滑稽