1、权限
READ_CONTACTS:允许应用读取用户通讯录数据。
WRITE_CONTACTS:允许应用修改用户通讯录数据。
GET_ACCOUNTS:从Android 6.0(API级别23)开始,此权限用于获取设备上已添加账户的列表,如果应用共享管理帐户的身份验证器的签名,则无需此权限即可读取有关该帐户的信息。
2、申请权限
在AndroidManifest.xml文件中声明所需权限:
<uses-permission android:name="android.permission.READ_CONTACTS" /> <uses-permission android:name="android.permission.WRITE_CONTACTS" /> <uses-permission android:name="android.permission.GET_ACCOUNTS" />
对于运行时权限(Android 6.0及以上),除了在AndroidManifest.xml中声明外,还需要在代码中动态请求权限,并在用户授权后才能执行相关操作。
3、合理使用场景
社交通讯、办公软件类:通过通讯录匹配联系人,完成添加/邀请好友、团队成员等操作。
实用工具类:备份克隆联系人、电话本时读取通讯录;手机管家类应用拦截骚扰时读取联系人判断是否存储过联系人。
穿戴类:读取通讯录中的联系人列表,将选定的联系人同步到穿戴设备上;接听电话时通过来电号码读取对应联系人信息,推送到穿戴设备上。
实用工具手机克隆类:将旧设备账号信息数据拷贝到新设备上时;数据备份后在恢复联系人时,需读取系统账号获取所有账号下的联系人。
4、不合理使用场景
新闻阅读类:获取用户通讯录数据用于推送信息给好友。
旅游住宿类:通过获取用户通讯录数据实现快速添加常用旅客或填写收件人信息。
出行导航类:选择添加紧急联系人时读取用户通讯录。
新闻阅读、金融理财等类:获取电话权限用来注册或登录时调用GET_ACCOUNTS权限。
实用工具类:用户通过微博、微信、QQ等账号进行关联登录时调用GET_ACCOUNTS权限。
社交通讯类:通过GET_ACCOUNTS权限实现获取通讯录邀请/屏蔽好友或互相关注的功能,应调用READ_CONTACTS权限。
1、为什么Android系统对通信录权限进行了限制?
答:Android系统对通信录权限进行限制主要是为了保护用户的隐私和数据安全,通信录中包含了用户的个人信息和联系人信息,这些信息可能被滥用或泄露,从而给用户带来不必要的麻烦和风险,通过限制应用访问通信录的权限,并要求应用在需要时向用户请求权限,可以确保用户对自己的数据有更多的控制权,减少隐私泄露的风险。
2、如何在Android应用中处理通信录权限的申请结果?
答:在Android应用中处理通信录权限的申请结果通常涉及以下几个步骤:在用户拒绝权限申请时,应向用户解释为什么需要该权限以及它如何改善应用的使用体验,如果用户接受了权限申请,应用应立即执行需要该权限的操作,以确保用户体验的流畅性,无论用户是否接受权限申请,都应记录用户的选择,以便在未来提供更个性化的服务或提示。