Android SQLiteOpenHelper无法创建SD卡的数据库

Android SQLiteOpenHelper无法创建SD卡的数据库,android,database,sd-card,Android,Database,Sd Card,我发现使用SQLiteDatabase.createDatabase可以创建到外部存储的数据库,但使用SQLiteOpenHelper无法创建到SD卡的数据库。 为什么? 。。。因为它从上下文对象获取数据库的绝对文件路径 DatabaseHelper(final上下文上下文,字符串databaseName) 默认上下文实现不支持用户路径 您可以提供自己的上下文实现,该实现提供了一个不同的文件路径,如我对 我隐约记得(半年前)我无法使用SQLiteOpenHelper for SD卡,所以我只是切

我发现使用SQLiteDatabase.createDatabase可以创建到外部存储的数据库,但使用SQLiteOpenHelper无法创建到SD卡的数据库。 为什么?

。。。因为它从上下文对象获取数据库的绝对文件路径

DatabaseHelper(final
上下文上下文
,字符串databaseName)

默认上下文实现不支持用户路径

您可以提供自己的上下文实现,该实现提供了一个不同的文件路径,如我对

我隐约记得(半年前)我无法使用SQLiteOpenHelper for SD卡,所以我只是切换到默认的DB位置(内存)。SD卡使用的唯一原因是数据库大小。因为我的“记录”中有图像,所以我决定只在DB中存储图像路径,而图像在SD卡上。这使我能够保持数据库大小的紧凑性(内部内存相当有限),并且到目前为止它仍然有效。您必须具有SD卡的写访问权限。如果有,只需为数据库帮助器提供一个完全限定的路径名,也可以不提供。我刚刚检查了我的旧代码,我只处理了下载到SD卡上的数据库。我不在数据库适配器中使用数据库帮助器来实现这些功能。我只使用SQLiteDatabase.openDatabase(databaseFile,null,SQLiteDatabase.OPEN|READONLY | SQLiteDatabase.NO_本地化_COLLATORS);
> SQLiteOpenHelper can not create database to sdcard. Why?