如何以编程方式从 android 中的联系电话获取联系方式

How to get contact details from contact number in android programatically

我正在 android 中处理呼叫应用程序,我已经完成了大部分事情,但现在我正在处理呼叫日志,我已经制作了一个呼叫日志,我想获得一个的所有详细信息从通讯录中联系,以编程方式使用其号码,简而言之,如何使用联系电话从通讯录中获取以下详细信息,

-Name
-Email
-Photo
-Group

如果您想从 phone 号码中检索联系方式,请使用以下内容:

String number = "number to find";
    Uri uri = Uri.withAppendedPath(ContactsContract.PhoneLookup.CONTENT_FILTER_URI, Uri.encode(number));
    String name = "?";

    ContentResolver contentResolver = getContentResolver();
    Cursor contactLookup = contentResolver.query(uri, new String[] {BaseColumns._ID,
            ContactsContract.PhoneLookup.DISPLAY_NAME }, null, null, null);

    try {
        if (contactLookup != null && contactLookup.getCount() > 0) {
            contactLookup.moveToNext();
            name = contactLookup.getString(contactLookup.getColumnIndex(ContactsContract.Data.DISPLAY_NAME));
            String contactId = contactLookup.getString(contactLookup.getColumnIndex(BaseColumns._ID));
String email = contactLookup.getString(contactLookup.getColumnIndex(BaseColumns.EMAIL));
        }
    } finally {
        if (contactLookup != null) {
            contactLookup.close();
        }
    }

Note Add contact read permission to your manifest

 <uses-permission android:name="android.permission.READ_CONTACTS" />