为何不需要权限即可访问android中的电子邮件地址目录?

问题描述

我下面有以下代码,向我展示了Android手机的整个电子邮件列表。

    val emailPickerIntent = Intent(Intent.ACTION_PICK,ContactsContract.CommonDataKinds.Email.CONTENT_URI)
    startActivityForResult(emailPickerIntent,REQUEST_CONTACTS_CODE)

我了解,如果我们要对通讯录进行读写,则Android要求用户明确授予权限。但是,在这种情况下,似乎不需要为电子邮件列表授予权限。 Google是否确定电子邮件不被视为敏感信息?

解决方法

向我显示了Android手机的整个电子邮件列表

否,它向用户显示 整个电子邮件列表。您的应用程序代码无权访问该列表。

如果用户选择了一个联系人,则通过您的情况下Uri的{​​{1}}发送给您的onActivityResult()将允许您获取该单个联系人的详细信息。通过选择联系人,用户将授予您对该联系人的短期访问权限,并且仅授予该联系人的访问权限。

Google是否确定电子邮件不被视为敏感信息?

他们这样做。这就是为什么您需要REQUEST_CONTACTS_CODE才能直接查询READ_CONTACTS提供程序的原因。但是,如果用户参与了联系人选择,则用户选择的任何联系人都不需要该权限。