HarmonyOS 7 文件与媒体业务 01|照片选择:系统选图与授权边界

发布时间:2026/10/22 7:37:49

HarmonyOS 7 文件与媒体业务 01|照片选择:系统选图与授权边界 本文面向 HarmonyOS 7 应用开发。涉及系统能力时以项目实际安装 SDK 的 API、权限及设备支持为准下文代码注明为局部示例不构成完整可运行工程。不是每个选图功能都需要遍历图库做报销附件时很容易先想到申请照片权限再自己写一个相册页。但用户只是要选两张发票并没有要求应用管理整个图库。把任务限定为“用户明确选中的照片”接入会更轻授权解释也更容易说清楚。HarmonyOS 提供系统 Picker。它让用户在系统界面完成选择应用取得选择结果并按对应授权规则访问资源。这里需要区分“本次能够读取”和“以后一直能够读取”。URI 是资源标识不能把它简单当成一个永久存在的沙箱路径。先做单张再扩展多张第一版建议只做图片、单选、立即预览。链路稳定后再添加多选和上传。下面是调用照片选择器的 ArkTS 局部示例需要从页面的按钮事件调用并在业务层处理错误import{photoAccessHelper}fromkit.MediaLibraryKit;asyncfunctionchooseOnePhoto():Promisestring|undefined{constoptionsnewphotoAccessHelper.PhotoSelectOptions();options.MIMETypephotoAccessHelper.PhotoViewMIMETypes.IMAGE_TYPE;options.maxSelectNumber1;constpickernewphotoAccessHelper.PhotoViewPicker();constresultawaitpicker.select(options);returnresult.photoUris.length0?result.photoUris[0]:undefined;}返回空结果时维持原来的附件不要把旧图清掉。选择接口发生异常时向用户提供重新选择入口不要把所有失败都解释为“未授权”因为资源读取和文件处理也可能失败。选图完成以后业务才刚开始可以把附件记录拆成四个字段本地业务编号、资源 URI、预览状态、上传凭据。URI 负责本地读取上传凭据负责服务器关联两者不要混用。只有服务器确认接收才把附件标成可提交。用户看到了缩略图并不代表文件已经上传。对于跨页面草稿先决定是否确实需要保留文件副本。如果需要在允许的访问范围内读取资源并保存到应用管理的目录记录来源和清理时间。不要只把临时 URI 塞进偏好存储就认为重启后必然可用持久访问应按当前 SDK 对该类资源的授权规则单独实现。多选时还要限制并发解码。十张大图同时展开成完整位图会产生远高于压缩文件大小的内存占用。列表先加载小尺寸预览点击后再读取需要的清晰度。用四个操作验收分别测试正常选图、取消选择、连续更换附件、选择后删除源文件。还要在真机上检查长图和高像素照片。预期结果是取消不会破坏旧附件换图不会出现旧预览覆盖新预览失效资源能重新选择上传失败仍保留可重试的业务记录。这一篇的交付目标很具体用户能把自己选中的一张图片可靠地变成一条可提交的附件记录。先完成这条链路再考虑更多图库能力。官方参考华为开发者文档HarmonyOS 7 新能力与开发入口
延伸阅读

更多相关文章

2026/10/22 7:32:49

Linux --DNS与ICMP

DNS:互联网的“电话簿”是怎么进化来的没有 DNS 的年代:hosts 文件的痛TCP/IP 通信靠的是 IP 地址 端口号。但 IP 地址是一串数字,人记不住。于是早期人们用 hosts 文件 来维护“主机名 → IP”的映射。用户输入 host-a,计算机查…

2026/10/22 7:32:49

在markdown编辑器中所见即所得修改表格【概念】

在markdown编辑器中所见即所得修改表格【概念】——这是我最初使用markdown编辑器的时候的一种设想,一直不明白为什么没有人来实现这个概念。 直到今天,以AI写代码、通过外挂方式实现的时候,才明白,如果不是商业软件开发&#xff…

2026/10/22 8:48:14

HDFS数据本地性如何决定MapReduce性能

1. 从“写入一个文件”开始:HDFS与MapReduce不是两张皮,而是一套动作的上下半场很多人一提HDFS就只想到“存东西”,一说MapReduce就只记得“跑计算”,结果学完半年还分不清为什么WordCount里先要hadoop fs -put再hadoop jar——仿…

2026/10/22 8:48:14

扣子智能体项目实战复盘:西南文旅场景从0到1

前阵子带完一个西南实践环境下的智能体项目,项目名就叫“智能体来了:在西南实践环境中学习扣子应用的智能体项目”。从立项到上线跑了差不多两个月,中间踩了不少坑,也攒了不少实打实的经验。这篇就当是给自己留个复盘,…

2026/10/22 8:48:14

AI基础设施三大关键趋势:原生调度、安全运行时与智能体云

做 AI 基础设施这几年,最明显的感受是:大家讨论的重点早就不是"能不能跑模型",而是"模型怎么跑得又快又稳又省"。最近这份 AI Infra Brief 里提到的三个关键词—— AI 原生调度器、安全运行时、智能体原生云 ——正好…

2026/10/22 8:48:14

从零搭建智能体:扣子平台工作流与知识库实战复盘

智能体这个概念这两年确实被反复提起,但我真正觉得它"落地了",是在西南这个实训基地里,把扣子平台上的应用从零搭到一个能稳定跑通的智能体之后。这里说的"扣子",是一个偏向低门槛的智能体编排平台&#xff0…

2026/10/22 8:48:14

微信小程序校园失物招领毕设源码与云开发实战指南

简介:这是一套高分通过的微信小程序校园失物招领系统毕设源码,面向计算机、电子信息工程等专业本科生,专为毕业设计、课程设计及期末大作业提供可直接部署、可深度学习的实战项目。资源包含1315个文件,涵盖112个Java后端逻辑文件、…

2026/10/22 8:43:00

跨境追踪架构详解:ReID模型、时空约束与工程落地实践

做多摄像头视频分析,通常都会遇到一个让人头疼的场景:目标明明从A镜头进去了,B镜头却等不到人。如果靠回放录像去人工排查,一帧一帧找过去,少说半天工作量。ReID跨境追踪架构,就是专门把这种事情自动化的一…

2026/10/21 4:53:08

金融AI落地指南:从调研报告到技术选型与工程实践

简介:这份PDF报告聚焦2025年金融服务业中国AI现状与趋势,面向金融科技从业者、AI战略规划人员及关注行业数字化转型的研究者,帮助读者把握生成式AI在银行、支付、交易等场景中的落地路径与投资方向。资源包内含1个PDF文件,大小约1…

2026/10/22 0:01:49

电商智能运营体系从0到1:架构设计、落地步骤与避坑指南

前两年我们团队接了一个电商平台的运营中台项目,目标很直白:把过去靠运营拍脑袋做的选品、定价、发券、推活动这些事,逐步用数据算法和自动化流程代替。项目名字内部就叫“电商智能运营体系”。最近有不少朋友问我当时是怎么设计的、踩过哪些…

2026/10/22 0:01:49

若依框架AI代码生成不稳定?用Agent Skill三层结构+五步法搞定

最近一段时间,我一直想把后台管理系统里那些机械重复的增删改查代码交给AI去写。框架用的是若依,按理说这类业务代码模式非常固定,应该是AI最擅长的事情。可真试下来却不是那么回事——你让AI生成一个用户管理模块,它给出的Contro…

还想了解更多?直接咨询顾问

免费诊断 + 免费方案 + 透明报价。

全国咨询热线400-8866-253
免费获取方案
☎咨询二维码 ☎ ↑