java - 是否可以在 Android 中使用 phoneGap 在 sdcard 中加载/创建数据库?

标签 java android cordova

如何从 sdcard 加载现有的 .db 文件或使用 phoneGap 或任何适用于 phoneGap 的插件在 sdcard 中创建数据库?

我想将我的 .db 文件保存在 sdcard 中,因为数据库的大小可能会增加。

最佳答案

我面临着同样的问题,但是在对 phonegap-cordova 库进行了长时间的深入阅读之后,我发现它缺乏提供选择路径的灵 active 。

原因可能是因为跨平台的限制,库绑定(bind)你使用默认的应用程序路径,所以在不同的平台上,库可以很容易地获取文件。

但是什么!!有一个技巧可以实现目标....

function onDeviceReady() {
    var db = window.openDatabase("test", "1.0", "Test DB", 1000000);
}

实际上当 JavaScript 调用 'openDatabase()' 函数时,它会做以下事情

  • 在db_name之前添加'/data/data//'
  • 并在db_name之后添加'.db'

即:在上述情况下,结果将是;

/data/data/< package_name_of_your_app>/test.db

所以技巧就在这里;

function onDeviceReady() {
      var db = window.openDatabase("../../../../mnt/sdcard/test", "1.0", "Test DB", 1000000);
}
  • 在 db_name 之前添加 '../../../../mnt/sdcard/',不要添加扩展名,因为库本身会添加 '.db',如果您添加任何扩展名,那么您的 db 文件将是db_name.(yourextension).db

现在呢!会的;

  • 在db_name之前添加'/data/data//'
  • 并在db_name之后添加'.db'
  • 它将使用你的 db_name '../../../../mnt/sdcard/test'

因此,结果将是;

/data/data/< package_name_of_your_app>/../../../../mnt/sdcard/test.db

所以,它会回到你手机的根目录,然后是/mnt/sdcard

关于java - 是否可以在 Android 中使用 phoneGap 在 sdcard 中加载/创建数据库?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11151783/

相关文章:

java - 创建类的新实例的不同方法?

android - 处理音频插孔按钮

java - 从另一个 Android 应用程序下载并安装 Android 应用程序

android - 一个 CardView 中的多个 RecyclerView 项目

Java可执行jar类路径混淆

java - 在签名的 Java 小程序中存储客户端数据

android - 为 ios 和 android 删除 phonegap 中的启动画面

android - 使用在线构建应用程序的本地文件 phonegap

javascript - HTML 内容更新未显示在 ionic 中

java - 使用 RXTX 同步 java 串口连接