Android应用间联系人访问权限及可见性

2次阅读
没有评论

问题描述

在Android系统中,关于Contacts Provider的数据存储和共享机制存在疑问。如果某应用程序在一个特定账户下保存了某些联系人的信息,并授予其他应用程序相应的读取权限,那么这些联系人的数据是否会被其他拥有相应权限的应用程序访问?还是每个应用只能访问自己授权的账户以及通过默认“联系人”应用程序手动输入的信息?

解决方案

方案1:直接访问Contacts Provider

根据官方文档说明,如需使用Contacts Provider来检索联系人信息,则需要申请READ_CONTACTS权限。持有该权限的应用程序可以通过用户的明确授权读取所有存储在Contacts Provider中的数据,包括但不限于来自于不同账户的数据。

因此,任何具备READ_CONTACTS权限的应用程序都可以访问系统内的联系人信息,无论这些联系人数据是在哪个应用中创建或保存的。这意味着例如电话拨号器、通讯录或社交媒体等不同应用可以同时展示同一人的多个联系方式(如Google、WhatsApp),以及通过电话号码或电子邮件等进行用户账号识别。

方案2:权限管理

应用在首次启动并请求访问联系人时,通常会显示一个包含各种权限的对话框。这些权限都是针对每次具体使用某个应用的功能而设定的,并且可以随时根据用户的需要调整。例如,在设备设置中通过系统设置 - 隐私 - 管理权限来查看或撤销应用对不同功能(如联系人、摄像头等)的访问授权。

  • 操作指引:
  • 打开手机的“设置”。
  • 选择隐私相关的选项,定位到应用管理或者权限设置部分。
  • 在这里可以查看每个应用程序所具备的具体权限,并决定是否要允许这些权限。

结论

总结而言,在Android系统中,Contacts Provider提供了一个开放的数据访问接口,所有申请了相应读取权限的应用都可以访问并使用其中存储的联系人信息。尽管这可能增加了用户隐私保护的风险,但也是出于方便不同服务整合数据以提供更好体验的目的实现的。因此对于开发者来说,应当慎重考虑申请以及管理应用所具有的权限。而对于用户而言,则需要谨慎授权,并定期审查已安装应用对各项敏感功能如联系人的具体访问情况。

正文完