问题起因是在 Android 11 上修改了权限机制,可能会影响你的应用访问联系人的方式。通过以下代码示例,可以让你的应用在 Android 11 上继续访问联系人:
Intent pickContactIntent = new Intent(Intent.ACTION_PICK, Uri.parse("content://contacts"));
pickContactIntent.setType(CommonDataKinds.Phone.CONTENT_TYPE); // Show user only contacts w/ phone numbers
startActivityForResult(pickContactIntent, PICK_CONTACT_REQUEST);
public void onActivityResult(int requestCode, int resultCode, Intent data) {
// Check for the requestCode value
if (requestCode == PICK_CONTACT_REQUEST) {
// Make sure the request was successful
if (resultCode == RESULT_OK) {
// Get the URI that points to the selected contact
Uri contactUri = data.getData();
// Do something with the contact here (beyond the scope of this article)
}
}
}
这些代码会为你的应用解决 Android 11 上的联系人选择器问题。