只挑一个联系人,而不申请整本通讯录权限
来源:dev.to — 2026-09-16
📋 概述
分享界面只要一个手机号,配送表单只要一个地址,都不需要用户整本通讯录。Codename One 在 PR #5680 中加入 ContactPicker:走系统选择器,只返回用户实际选中的联系人和字段,无需通讯录全量权限。Android 17 使用系统 Contact Picker,老版本走窄化的 ACTION_PICK 兜底,iOS 使用 CNContactPickerViewController,因此也不需要通讯录用途描述文案。
🔑 核心要点
- 声明字段掩码即可:NAME | PHONE,返回的是用户选中的最小数据集。
- 请求字段只是「期望」,平台可以少给:联系人缺该字段,或选择器不支持该组合。
- 返回的 Contact 是快照,其标识符不是后续无限访问通讯录的令牌。
- iOS 路径由系统界面承载用户选择,因而免除了 NSContactsUsageDescription。
💡 金句
一个分享界面只要一个手机号,一个配送表单只要一个地址——这两个功能都不需要一份用户认识的所有人的数据库。
👍 0
👎 0
← 返回 dev.to 首页