2017-12-17 20 views
1

で取得しています。私には連絡先IDがあります。私は連絡先の詳細を(連絡先IDの助けを借りて)得ることができる方法はありますか?連絡先の詳細をすべて連絡先のID番号

スタックオーバーフローにはすでにquestionが存在しましたが、回答は古くなってしまい、もう動作しません。

答えて

1

連絡先IDを使用して連絡先のすべての詳細を取得するためのコードスニペット。

public static ModelContact getContactDetails(final Context context, String contactId) { 

     ModelContact contact = new ModelContact(); 
     contact.setContactId(contactId); 

     Cursor cursor = context.getContentResolver().query(ContactsContract.Data.CONTENT_URI, 
       new String[]{ContactsContract.Data._ID, 
         ContactsContract.Data.MIMETYPE, 
         ContactsContract.Data.DISPLAY_NAME, 
         ContactsContract.Data.RAW_CONTACT_ID, 
         ContactsContract.Data.LOOKUP_KEY, 
         ContactsContract.Data.DATA1, 
         ContactsContract.Data.DATA2, 
         ContactsContract.Data.DATA3, 
         ContactsContract.Data.DATA4, 
         ContactsContract.Data.DATA5, 
         ContactsContract.Data.DATA6, 
         ContactsContract.Data.DATA7, 
         ContactsContract.Data.DATA8, 
         ContactsContract.Data.DATA10}, 

       ContactsContract.Data.CONTACT_ID + "=?" + " AND " 
         + "(" + ContactsContract.Data.MIMETYPE + "='" + ContactsContract.CommonDataKinds.Phone.CONTENT_ITEM_TYPE + "' OR " 
         + ContactsContract.Data.MIMETYPE + "='" + ContactsContract.CommonDataKinds.StructuredName.CONTENT_ITEM_TYPE + "' OR " 
         + ContactsContract.Data.MIMETYPE + "='" + ContactsContract.CommonDataKinds.StructuredPostal.CONTENT_ITEM_TYPE + "' OR " 
         + ContactsContract.Data.MIMETYPE + "='" + ContactsContract.CommonDataKinds.Organization.CONTENT_ITEM_TYPE + "' OR " 
         + ContactsContract.Data.MIMETYPE + "='" + ContactsContract.CommonDataKinds.Email.CONTENT_ITEM_TYPE + "')", 
       new String[]{contactId}, null); 

     if (cursor != null && cursor.getCount() > 0) { 

      while (cursor.moveToNext()) { 
       String displayName = cursor.getString(cursor.getColumnIndex(ContactsContract.Data.DISPLAY_NAME)); 
       contact.setDisplayName(displayName); 
       String rowContactId = cursor.getString(cursor.getColumnIndex(ContactsContract.Data.RAW_CONTACT_ID)); 
       contact.setRawContactId(rowContactId); 
       String lookUpKey = cursor.getString(cursor.getColumnIndex(ContactsContract.Data.LOOKUP_KEY)); 
       contact.setLookupKey(lookUpKey); 

       String mimeType = cursor.getString(cursor.getColumnIndex(ContactsContract.Data.MIMETYPE)); 
       if (mimeType.equals(ContactsContract.CommonDataKinds.Phone.CONTENT_ITEM_TYPE)) { 
        setPhoneList(cursor, contact); 
       } else if (mimeType.equals(ContactsContract.CommonDataKinds.Email.CONTENT_ITEM_TYPE)) { 
        setEmailList(cursor, contact); 
       } else if (mimeType.equals(ContactsContract.CommonDataKinds.StructuredName.CONTENT_ITEM_TYPE)) { 
        setStructuredName(cursor, contact); 
       } else if (mimeType.equals(ContactsContract.CommonDataKinds.Organization.CONTENT_ITEM_TYPE)) { 
        setOrganization(cursor, contact); 
       } else if (mimeType.equals(ContactsContract.CommonDataKinds.StructuredPostal.CONTENT_ITEM_TYPE)) { 
        setAddress(cursor, contact); 
       } 
      } 

      cursor.close(); 
     } 
     return contact; 
    } 

詳細については、次のリンクを確認してください。

ContactHelper.java

私はそれはあなたを助けることを願っています。

+0

それを見る。ありがとう –

+0

このリンクは質問に答えるかもしれませんが、答えの本質的な部分をここに含めて参照のためのリンクを提供する方が良いです。リンクされたページが変更された場合、リンクのみの回答は無効になります。 - [レビューから](レビュー/低品質の投稿/ 18281336) – Aryan

+0

@Aryanの提案に感謝します。 –

関連する問題