1

アンドロイドデバイスの連絡先リストから連絡先を選択する必要があります。私は、デバイス上の連絡先のリストに活動を取得し、次のコードでContactsContract.Contactsから連絡先のLOOKUP_KEYを取得する方法?

:連絡先を選ぶ後

Intent intent = new Intent(Intent.ACTION_PICK, ContactsContract.Contacts.CONTENT_URI); 
startActivityForResult(intent, ADD_CONTACT_REQUEST_CODE); 

、どのように私は、選択した連絡先のLOOKUP_KEYを得ることができますか?

代わり

またはcontent://com.android.contacts/contacts/lookup/0r2-334B29432‌​D314D2D29/2を取得し、私は完全なURI

protected void onActivityResult(int requestCode, int resultCode, Intent data) { 
    super.onActivityResult(requestCode, resultCode, data); 
    if(resultCode == Activity.RESULT_OK){ 
     switch (requestCode){ 
      case ADD_CONTACT_REQUEST_CODE: 
      Uri contactUri = data.getData(); 
      String contactUriString = contactUri.toString(); 
      break; 
     } 
    } 
} 

を取得することがLOOKUP_KEY

でこれまでのところ、私はできるよ、0r2-334B29432‌​D314D2D29を取得する必要があり、事前に

答えて

3

をありがとうございましたこのための簡単なAPIヘルパーメソッドがあります - getLookupUri

Uri contactUri = data.getData(); 
ContentResolver cr = getContentResolver(); 
Uri lookupUri = ContactsContract.Contacts.getLookupUri(cr, contactUri); 

更新

このない、LOOKUP_KEYを取得するには:

String projection = String[] { Contacts.LOOKUP_KEY }; 
Cursor cursor = getContentResolver().query(contactUri, projection, null, null, null); 

if (cursor != null && cursor.moveToNext()) { 
    String lookupKey = cursor.getString(0); 
    Log.d(TAG, "key = " + lookupKey); 
    cursor.close(); 
} 
+0

は非常に非常にありがとうございました:) – MDP

+0

を私はあなたの方法を使用してみましたが、それはそのdata.getData()と思われます。 ContactsContracts.Contents.getLookupUri(cr、contactUri)は同じURIを返します。これはcontent://com.android.contacts/contacts/lookup/0r2-334B29432D314D2D29/2 – MDP

+0

のlookupUriのようなものです。あなたはそれで何をしようとしていますか? – marmor

関連する問題