【OpenHarmony/HarmonyOs 】零敏感权限启动:从 module 配置到 AI 识图禁用的精细化权限方案 【OpenHarmony/HarmonyOs 】零敏感权限启动从 module 配置到 AI 识图禁用的精细化权限方案本文基于我的 OpenHarmony/HarmonyOS 项目「物理视界 PhysicsVision」整理。项目当前没有相机、相册、麦克风、定位、通讯录、网络请求和 AI 识图调用核心体验全部通过本地 Canvas、公式计算和题库完成。这一篇专门对应“禁止 AI 识图、精细化权限管控、隐私保护方案”的主题。一、为什么要强调零敏感权限启动教育类 App 面向学生尤其要谨慎处理权限。一个学习工具如果启动就申请相机、相册、麦克风、定位用户会产生疑问为什么学物理要相机为什么要访问照片会不会上传我的图片会不会记录我的声音会不会收集位置「物理视界」的设计选择是启动时不申请敏感权限核心功能全部本地完成。二、module.json5 中没有敏感权限声明当前module.json5中主要声明了 EntryAbility 和 BackupExtensionAbility{module: {name:entry,type:entry,deviceTypes: [phone,tablet],abilities: [ {name:EntryAbility,srcEntry:./ets/entryability/EntryAbility.ets,exported: true } ] } }项目没有额外声明相机、相册、麦克风、定位等敏感权限。这意味着用户打开应用时不会被权限弹窗打扰。三、为什么禁用 AI 识图AI 识图在教育场景中常见但并不一定适合所有学习产品。对「物理视界」来说禁用 AI 识图有几个原因物理学习更需要理解过程而不是直接给答案拍照可能包含学生姓名、试卷、桌面环境上传图片会增加隐私和合规压力AI 识别错误可能误导学习不做识图能减少权限和网络依赖。所以项目选择“可交互模型”而不是“拍照识题”。四、用 Canvas 替代拍照识题例如凸透镜成像页面用户不用拍题直接调参数Slider({value:this.objectDist,min: 20,max: 250,step: 1 }).trackColor($r(app.color.slider_track)) .selectedColor(#1A73E8).onChange((v:number) { this.objectDist v this.calculate()})公式计算let v (u * f) / (u - f)this.imageDist vthis.imageHeight -v / u *this.objectHeight这样学生通过调节物距和焦距理解成像规律不需要上传任何图片。五、用本地题库替代云端问答挑战模块的题目直接内置在本地interfaceQuizQuestion{ question:stringoptionA:stringoptionB:stringoptionC:stringoptionD:stringanswer: number category:stringgrade:stringexplanation:string}筛选也在本地完成constgradeMatch this.selectedGrade 全部|| q.grade this.selectedGradeconstcategoryMatch this.selectedCategory 全部|| q.category this.selectedCategory这避免了把学生答题行为发送到云端。六、用公式计算器替代联网查询公式计算器也是本地结构化配置calculate:(v) 合外力 F ${(v[0] * v[1]).toFixed(2)}N用户输入参数后立即得到结果不需要联网搜索。这既快也更隐私友好。七、学习数据最小化项目只保存必要学习状态PersistentStorage.persistProp(favorites, )PersistentStorage.persistProp(highScore, 0)PersistentStorage.persistProp(totalPlayed, 0)PersistentStorage.persistProp(visitedModels, )这些数据不包含姓名手机号照片声音定位通讯录账号密码。它们只是学习功能所需的本地状态。八、用户可清理设置页提供清除功能Button(清除收藏).onClick(() {if(this.favStr.length0) { this.favStrpromptAction.showToast({ message:已清除所有收藏}) } })Button(重置记录).onClick(() {if(this.totalPlayed0) { this.highScore0this.totalPlayed0promptAction.showToast({ message:已重置挑战记录}) } })隐私保护不只是“不收集”还要让用户能控制已有数据。九、如果未来增加权限应该怎么做如果后续加入近场快传、云同步或元服务建议坚持按需授权用户点击分享时再触发近场能力用户打开同步时再说明同步内容用户开启 AI 功能时再明确告知数据范围不在启动阶段一次性申请所有权限。权限应该跟随具体功能而不是提前打包申请。十、总结「物理视界」当前实现了一个很适合教育场景的隐私策略零敏感权限启动、禁用 AI 识图、本地题库、本地公式、本地 Canvas 模拟和本地学习状态。这篇文章对应的主题是禁止 AI 识图 精细化权限管控 隐私保护方案。它说明学习 App 并不一定要靠拍照、上传和识别才能做好体验只要把端侧交互和可视化做好同样能完成高质量学习闭环。✅