HarmonyOS 鸿蒙Next中授权持久化问题:如何持久化目录
HarmonyOS 鸿蒙Next中授权持久化问题:如何持久化目录 通过系统picker拉起文件管理器,选择单个文件,然后通过file.share.persistPermission持久化。后续在使用时可以直接通过权限激活,可以直接读取该文件,在后台进行加工处理。
问题:官方文档中没有看到如何拉起整个目录,然后对整个目录持久化。
有没有大佬知道怎么处理。(没有profile的公共目录访问权限)
通过DocumentViewPicker中的select接口拉起用户目录。同时设置selectMode为DocumentSelectMode.FOLDER,可以实现用户目录文件夹的选择,之后再对选中目录进行持久化授权。selectMode的设置需要能力SystemCapability.FileManagement.UserFileService.FolderSelection,使用前可使用canIUse接口,确认设备是否具有该能力。
支持设备:PC/2in1 TV
更多关于HarmonyOS 鸿蒙Next中授权持久化问题:如何持久化目录的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html
哈哈,看到最后PC/2in1,凉凉了。phone设备确实没找到持久化目录授权的方式。
获取callrecord目录下的录音文件,包括通话录音过其他形式的会议录音,经过本机的asr引擎获得文本内容,脱敏后提交大模型按某流程指令给出处理后的内容反馈给用户。
备注: 文件属性为高敏类型,需用户自主决定是否授权。
在看NDK文档,不知道有没有其他解决方案,
在HarmonyOS Next中,持久化目录授权可通过@ohos.file.fs
模块实现。使用fs.access
或fs.mkdir
创建或访问应用沙箱路径下的目录,系统自动管理权限。通过fileuri.getUriFromPath
获取目录URI,配合securityLabel
设置数据标签实现持久化存储。无需手动授权,数据在应用卸载前持久保存。
在HarmonyOS Next中,目前系统文件选择器(picker)主要针对单个文件授权,暂未开放直接选择并持久化整个目录的标准API。若需处理目录,可考虑以下替代方案:
-
分文件授权
通过picker逐个选择目录下的关键文件并进行持久化(file.share.persistPermission)。适用于已知固定文件结构的场景,但无法动态覆盖新增文件。 -
使用公共目录权限
若目录位于媒体库(如Photos、Documents等),可申请对应的媒体库权限(如ohos.permission.READ_IMAGEVIDEO
),通过媒体库接口直接访问目录内容,无需持久化授权。 -
用户手动导航授权
通过file.save
等接口引导用户手动保存文件至目标目录,系统会自动记录路径权限,但依赖用户主动操作。
当前持久化权限的设计更侧重精细化控制,建议根据实际需求评估是否必须目录级授权。若业务强依赖目录遍历,可关注后续版本更新是否会扩展picker能力。