news 2026/7/5 4:05:33

【OpenHarmony/HarmonyOs 】零敏感权限启动:从 module 配置到 AI 识图禁用的精细化权限方案

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
【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 识图有几个原因:

  1. 物理学习更需要理解过程,而不是直接给答案;
  2. 拍照可能包含学生姓名、试卷、桌面环境;
  3. 上传图片会增加隐私和合规压力;
  4. AI 识别错误可能误导学习;
  5. 不做识图能减少权限和网络依赖。

所以项目选择“可交互模型”而不是“拍照识题”。

四、用 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.length>0) { this.favStr=''promptAction.showToast({ message:'已清除所有收藏'}) } })Button('重置记录').onClick(() => {if(this.totalPlayed>0) { this.highScore=0this.totalPlayed=0promptAction.showToast({ message:'已重置挑战记录'}) } })

隐私保护不只是“不收集”,还要让用户能控制已有数据。

九、如果未来增加权限,应该怎么做?

如果后续加入近场快传、云同步或元服务,建议坚持按需授权:

  • 用户点击分享时,再触发近场能力;
  • 用户打开同步时,再说明同步内容;
  • 用户开启 AI 功能时,再明确告知数据范围;
  • 不在启动阶段一次性申请所有权限。

权限应该跟随具体功能,而不是提前打包申请。

十、总结

「物理视界」当前实现了一个很适合教育场景的隐私策略:零敏感权限启动、禁用 AI 识图、本地题库、本地公式、本地 Canvas 模拟和本地学习状态。

这篇文章对应的主题是:禁止 AI 识图 + 精细化权限管控 + 隐私保护方案
它说明学习 App 并不一定要靠拍照、上传和识别才能做好体验;只要把端侧交互和可视化做好,同样能完成高质量学习闭环。✅

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/7/5 4:05:21

深度强化学习

【王树森】深度强化学习(DRL)_哔哩哔哩_bilibili 1.1基本概念 大写字母表示变量,小写字母表示观测值 数学概念 概率密度函数PDF 概率密度函数性质——概率的积分或求和为1 期望Expectation p为概率密度函数 f为取值 随机抽样 Random Sampling 强化学习中的随机…

作者头像 李华
网站建设 2026/7/5 4:04:08

BiliTools跨平台工具箱:如何优雅管理你的B站内容收藏

BiliTools跨平台工具箱:如何优雅管理你的B站内容收藏 【免费下载链接】BiliTools A cross-platform bilibili toolbox. 跨平台哔哩哔哩工具箱,支持下载视频、番剧等等各类资源 项目地址: https://gitcode.com/GitHub_Trending/bilit/BiliTools 你…

作者头像 李华
网站建设 2026/7/5 4:02:35

AdaBoost 算法 sklearn 1.4.2 实战:鸢尾花分类准确率 98.5% 的 5 步调优

AdaBoost算法在sklearn 1.4.2中的实战调优:鸢尾花分类98.5%准确率达成指南鸢尾花分类是机器学习领域的经典案例,但如何将AdaBoost模型优化到接近完美的准确率?本文将带您深入scikit-learn 1.4.2版本中的AdaBoostClassifier,通过5个…

作者头像 李华
网站建设 2026/7/5 4:01:48

300元真无线耳机技术真相:为什么它成了性价比分水岭

1. 这不是在挑耳机,是在选“耳朵的第二层皮肤”“求一款性价比高的无线耳机?”——这句话我每天在数码论坛、社群、私信里看到不下二十遍。它背后藏着的,从来不是单纯问个型号,而是一连串没说出口的现实约束:预算卡在3…

作者头像 李华
网站建设 2026/7/5 4:00:23

如何快速恢复被遗忘的ZIP文件密码:专业数据解锁终极指南

如何快速恢复被遗忘的ZIP文件密码:专业数据解锁终极指南 【免费下载链接】bkcrack Crack legacy zip encryption with Biham and Kochers known plaintext attack. 项目地址: https://gitcode.com/gh_mirrors/bk/bkcrack 忘记ZIP文件密码是许多用户面临的常见…

作者头像 李华
网站建设 2026/7/5 3:59:22

codex CLI使用技巧

文章为个人辛苦整理,已加入原创侵权保护,禁止私自转载。 文章所在专栏:《黑猫的AI工具箱》 1 为什么建议用CLI 做嵌入式开发,linux环境下编译代码。通过Samba/UNC虽然映射到Windows上。但通过codex应用访问代码,还是容…

作者头像 李华