アプリがREAD_CONTACTS権限を必要とせずに、ユーザーが連絡先を選択できるようにするために、Androidの連絡先ピッカーを実験してきました。次のインテントは、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、Motorola Droidなど)では、返されたUIをクエリしようとすると、アクセス許可拒否の例外が発生します。
Caused by: java.lang.SecurityException: Permission Denial: reading com.android.providers.contacts.ContactsProvider2 uri content://com.android.contacts/contacts/lookup/0r1-52345052324E483C32/1 from pid=273, uid=10036 requires android.permission.READ_CONTACTS
これは、OSまたはデバイスの断片化の問題のようです。このトピックまたは別のアプローチを進めることができるように、このトピックについての説明を求めています。
考え?