问题描述
我下面有以下代码,向我展示了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
提供程序的原因。但是,如果用户参与了联系人选择,则用户选择的任何联系人都不需要该权限。