You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

Flutter应用使用SQFlite创建内部存储数据库是否需要申请存储权限?

Flutter应用使用SQFlite创建内部存储数据库是否需要申请存储权限?

嗨,这个问题我之前做Flutter项目的时候也纠结过,答案是完全不需要额外申请存储权限,原因得从Android和iOS两个平台的存储机制分别说起:

  • Android平台

    • 不管是低版本还是高版本的Android,SQFlite默认会把数据库文件存在应用的私有内部存储目录(比如/data/data/[你的应用包名]/databases/)里。这个目录是系统专门给每个应用分配的专属区域,只有当前应用能访问,系统默认就授予了应用对这个目录的读写权限,不需要你去申请READ_EXTERNAL_STORAGEWRITE_EXTERNAL_STORAGE这类存储权限。
    • 就算是Android 10及以上的Scoped Storage(分区存储)机制,也不会影响应用对自己私有目录的访问,完全不用额外配置权限。
  • iOS平台

    • iOS的沙箱机制决定了每个应用只能访问自己的沙箱目录,SQFlite默认会把数据库存在沙箱内的Documents或Library目录下,这些区域都是应用的专属空间,系统自动允许应用读写,不需要申请任何存储权限。

额外提一句:如果之后你的应用有需求要把数据库文件导出到共享区域(比如Android的下载文件夹、iOS的共享相册),那时候才需要申请对应的存储权限,但如果只是用SQFlite存储和读取自己的应用数据,完全不用操心权限的事儿,放心用就行~

火山引擎 最新活动