H4.09.1per-contact access instead of full address book设计

通讯录访问应尽量提供联系人级别的选择而非全量授权

别名: 联系人级选择 · 全量通讯录 · limited contacts · contact picker

概念解释

邀请一位好友、填一个电话,人需要的是那几个联系人,不是整本通讯录。应优先用系统联系人选择器或「选取要分享的人」,让应用只拿到被点名的条目。一上来申请「允许访问通讯录」是全量授权:姓名、号码、关系、备注一次交出去。这条谈通讯录的选择粒度,不是相册,也不是把通讯录上传做好友匹配时服务器怎么留存。

机制

通讯录是一张高敏感的社会图,条目之间的关系比单个号码更值钱。全量授权的工程理由是「方便以后再找人」;对人,这是为一次邀请预付了整张图的代价。选择器把能力关在系统界面里:应用只获得结果行,没有枚举整表的 API。粒度失败时,拒绝全量的人连「选一个号码」都做不成,功能被绑在最宽的那一档上,通过率与隐私同时变差。

边界

设备管理、紧急联系人同步、用户明确要求「备份整本通讯录」的工具,全量是任务本身,应在说明里写「将读取全部联系人」并允许以后撤回。系统没有联系人选择器的旧平台,可退回为「手动输入号码」加可选的全量,而不是把全量当唯一入口。企业通讯录目录与个人通讯录不是同一张表,选人界面要标明来源。

怎么落地

  • 默认入口是系统联系人选择器或可搜索的「选人」;产品路径在只需要少数条目时不请求全量通讯录权限。
  • 需要多人时允许连续点选或一次多选,而不是因此升级成全量。
  • 全量请求单独放在「同步 / 备份 / 匹配全部好友」这种真正要遍历的功能上,并写明将读取整本。
  • 验证:完成「邀请一位好友 / 填一个电话」后,系统设置里通讯录权限应为未授权或仅所选。若变成全部访问,入口选错。拒绝全量后,选择器路径仍应可用。

延伸

  • 同组H4.09.2 相册权限可分为选中项目与全部访问两种粒度 · H4.09.3 上传通讯录用于匹配好友需明确告知服务器留存方式 · H4.09.4 精细化权限选择器出现后,全量权限申请的正当性下降
  • 相邻H4.08 相机与麦克风权限 · O1.02 数据最小化 · O1.10 同意的粒度与可撤回
  • 站内检索contact picker · limited contacts · address book permission

同组卡片

快捷操作

分享

分享当前页面

ios_share

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