cordova-sqlite-ext 可以读取 SD 卡上的数据库(Android)吗?

Can cordova-sqlite-ext read db on sd card (Android)?

我已经搜索了 houres,但我无法真正弄清楚我是否可以使用 cordova- sqlite-ext 插件。

https://www.npmjs.com/package/cordova-sqlite-storage 上说:

The following features are available in litehelpers / cordova-sqlite-ext: ... - Pre-populated database (Android/iOS/macOS/Windows)

所以我需要的是 webapp 之外的一个 sqlite 数据库和一个可以从这个数据库读取的 phonegap 插件。那么,上面的插件可以做到这一点是否正确???

或者还有其他方法可以完成该任务吗?

cordova-sqlite-storage 将其数据库存储在应用程序的私有存储目录​​中。 这只能由您的应用程序访问,并且位于内部数据分区上。 例如,如果您的应用程序包 ID 是 foo.bar.com,而您的数据库有 name: store.db,那么它将位于 /data/data/foo.bar.com/databases/store.db。 位置 data/data/foo.bar.com/cordova-plugin-file.

引用为 cordova.file.applicationStorageDirectory

您可以使用 cordova-sqlite-storagecordova-sqlite-evcore-extbuild-free 变体:

Custom Android database location (supports external storage directory)

"external storage directory" 在 "SD card" 上,通常是通过挂载点 /sdcard//storate/emulated/0/ 访问的内部内存分区。 自 Android 4.4 起,应用程序只能在 SD 卡上的 "application sandbox" 目录中进行写入访问,例如/sdcard/Android/data/foo.bar.com/ (cordova.file.externalApplicationStorageDirectory).

SD 卡的所有其他区域都是只读的(例如 /sdcard/ 的根目录 - cordova.file.externalRootDirectory),因此虽然您可以在此处从数据库中读取,但要写入它,您需要需要将其复制到应用程序的私有或外部存储目录。例如,您可以使用 cordova-plugin-file 来执行此操作。