H4.08.1separate camera and microphone permission设计

相机与麦克风权限需分别申请,不因同属媒体类而合并

别名: 相机麦克风分权 · 媒体权限拆分 · camera mic split · media permission bundle

概念解释

相机和麦克风是两项能力:一个取图像,一个取声音。扫码、拍证件、换头像只需要相机;语音消息、通话只需要麦克风。不能因为同属「媒体」或一次视频通话会用到两者,就把它们做成一次合并授权、一张「允许媒体」清单。分别申请让人可以只给当前动作所需的那一项。这条不谈使用中指示灯,也不谈一次性拍摄该不该走系统相机界面。

机制

两项传感器的伤害面不同:画面能暴露环境与身份,声音能暴露对话与在场。合并授权让风险按更敏感的那一项计价,于是只想扫码的人也必须打开麦克风,或因拒麦克风而丢掉相机。视频通话确实两者都要,那是同一任务里的两次请求,中间用「还需要声音对方才能听见」连接,而不是语义上合成一个权限。平台 API 也按传感器分;产品若在自己的界面上绑在一起,是在取消平台已经提供的粒度。

边界

系统在某些版本把「录视频」做成同时要两项的任务模板,仍应在进入预览前让人看见将打开的是相机、麦克风还是两者。纯音频或纯图像工具不应请求另一项「以备以后」。网页权限若浏览器把两者叠在一个弹窗里,站点仍应在自己的前置说明里拆开,并在用户只拒绝其中一项时降级,而不是整段通话失败却不说明是哪一项。

怎么落地

  • 为相机、麦克风各写触发动作与前置说明;禁止一个按钮连续弹出两项,除非当前任务立刻需要两者。
  • 视频通话在进入房间前短间隔内逐项请求,第一项被拒则不要自动弹第二项,先说明缺的是画面还是声音。
  • 设置里两项分两行显示,不要合成「媒体权限」。
  • 验证:只允许相机、拒绝麦克风,扫码与拍照应可用,语音应走降级。反过来亦然。查实际调用的系统 API 是否在只拍照的路径上申请了麦克风。

延伸

  • 同组H4.08.2 权限授予后使用中的指示灯或图标不应被应用隐藏 · H4.08.3 一次性拍摄场景应优先使用系统选择器而非请求持续权限 · H4.08.4 后台静默调用摄像头或麦克风是严重的信任破坏行为
  • 相邻H4.01 请求时机 · H4.09 通讯录与相册权限 · O1.10 同意的粒度与可撤回
  • 站内检索camera permission · microphone permission · separate grants

同组卡片

快捷操作

分享

分享当前页面

ios_share

https://hci.top/zh/handbook/H4.08.1