我们一直在尝试使用 Android 联系人选择器,以允许用户在应用程序不需要 READ_CONTACTS 权限的情况下选择联系人。以下意图似乎适用于 4.0 (ICS) 设备以及 2.3.3 模拟器:
Intent contactPickerIntent = new Intent(Intent.ACION_GET_CONTENT);
contactPickerIntent.setType(Phone.CONTENT_ITEM_TYPE); // returns content://com.android.contacts/data/...
Intent contactPickerIntent = new Intent(Intent.ACTION_PICK, Contacts.CONTENT_URI); // returns content://com.android.contacts/lookup/...
但是,在 2.2 模拟器和某些 ICS 之前的模型(例如,HTC Thunderbolt、摩托罗拉 Droid)上,尝试查询返回的 UI 会导致权限拒绝异常:
引起:java.lang.SecurityException:权限被拒绝:从 pid=273,uid=10036 读取 com.android.providers.contacts.ContactsProvider2 uri content://com.android.contacts/contacts/lookup/0r1-52345052324E483C32/1需要 android.permission.READ_CONTACTS
这看起来像是操作系统或设备碎片问题;我们正在寻求对此主题的澄清,以便我们可以继续采用这种方法或替代方法。
想法?