我必须读写sd卡上的sqlite数据库(而不是内部存储器)。我熟悉sqlite模式:
database = SQLiteDatabase.openDatabase("mnt/sdcard2/test/temp/abcd.db",null,
SQLiteDatabase.OPEN_READWRITE);
我相信" abcd.db"存在于SD卡上。
但是我得到以下错误:
无法在[00bb9c9ce4]第30217行打开文件 无法打开数据库' /mnt/sdcard2/test/temp/abcd.db' android.database.sqlite.SQLiteCantOpenDatabaseException:未知错误(代码14):无法打开数据库
此代码也适用于android 4.2。*及以下版本。 我在Android 4.4及以上版本中遇到此问题。
请帮帮我。
感谢。
答案 0 :(得分:1)
自Android 4.4起,您无法自由访问应用包目录之外的SD卡。按照https://source.android.com/devices/storage/index.html中的说明操作,根据给出的示例更改SD卡上的路径
例如,包名为com.example.foo的应用程序现在可以自由使用 使用外部存储设备访问Android / data / com.example.foo / 没有权限。
如果您确实想要访问其他目录,请使用存储访问框架https://developer.android.com/guide/topics/providers/document-provider.html