winnnnnnnnner
winnnnnnnnner
  • 发布:2022-06-16 09:54
  • 更新:2022-06-16 15:04
  • 阅读:325

关于sqlite无法存储到SD卡的问题。

分类:HBuilderX

内部存储没有问题,sqlite可以正常创建数据库。 但是存储到外部SD卡里,就无法写入了,报错-1403。 由于设备是定制化的固件,已开启所有权限 包括但不限于root、外部存储读写。
目前遇到的问题就是:
外部SD卡可以正常通过代码写入jpg、mp4文件,但是无法写入sqlite文件。请问这是系统权限问题,还是plus.sqlite限制了写入。

2022-06-16 09:54 负责人:DCloud_Android_zl 分享
已邀请:
winnnnnnnnner

winnnnnnnnner (作者)

求官方回复,感谢!

DCloud_Android_zl

DCloud_Android_zl

代码发一下

  • winnnnnnnnner (作者)

    export const dbHelper = {

    // 打开数据库

    openDB() {

    const basePath = ${Vue.LOCAL_OUTER_PATH}/gzy-fuel/base.db; //LOCAL_OUTER_PATH 是通过定制固件API获取到的SD卡路径 /storage/sdcard1

    //获取数据库是否打开

    const dbIsOpen = plus.sqlite.isOpenDatabase({

    name: 'base',

    path: basePath,

    });

    if (!dbIsOpen) {

    plus.sqlite.openDatabase({

    name: 'base',

    path: basePath,

    success: function(e) {

    console.log('◎◎◎◎◎◎◎◎◎◎◎◎◎◎◎◎◎◎◎◎◎◎◎◎【打开数据库成功】◎◎◎◎◎◎◎◎◎◎◎◎◎◎◎◎◎◎◎◎◎◎◎◎');

    },

    fail: function(e) {

    console.error('◎◎◎◎◎◎◎◎◎◎◎◎◎◎◎◎◎◎◎◎◎◎◎◎【打开数据库失败】◎◎◎◎◎◎◎◎◎◎◎◎◎◎◎◎◎◎◎◎◎◎◎◎');

    console.error(JSON.stringify(e)) //这里就会报错 -1043

    console.error('◎◎◎◎◎◎◎◎◎◎◎◎◎◎◎◎◎◎◎◎◎◎◎◎【打开数据库失败】◎◎◎◎◎◎◎◎◎◎◎◎◎◎◎◎◎◎◎◎◎◎◎◎');

    }

    });

    } else {

    console.log("◎◎◎◎◎◎◎◎◎◎◎◎◎◎◎◎◎◎◎◎◎◎◎◎【数据库已打开】◎◎◎◎◎◎◎◎◎◎◎◎◎◎◎◎◎◎◎◎◎◎◎◎");

    }

    }

    }

    2022-06-16 15:05

  • DCloud_Android_zl

    回复 5***@qq.com: 打印一下数据库地址,是不是地址写的不对

    2022-06-16 17:21

  • winnnnnnnnner (作者)

    回复 DCloud_Android_zl: 地址是对的 /storage/sdcard1/gzy-fuel/base.db

    而且还有,别的API, plus的 moveTo,使用外部SD卡的路径也会报错 {"code": 10,"message": "执行出错"}

    是不是不支持外部SD卡啊。 离线打包 在线打包都试过,不行。。。

    但是我用ffmpeg插件保存到外部SD卡是可以的。

    2022-06-16 17:28

要回复问题请先登录注册