Android 4.4及以上版本如何在SD卡上的SQLite数据库中插入记录

时间:2015-07-08 07:10:42

标签: android sqlite android-sqlite android-5.0-lollipop

我必须读写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及以上版本中遇到此问题。

请帮帮我。

感谢。

1 个答案:

答案 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