获取电子邮件和 phone 没有使用选择意图定义的名称

Get email and phone no of name defined without using pick intent

我想使用查询从联系人中获取 phone 号码和电子邮件地址。以下是我当前的代码。但收不到来自当前光标的电子邮件。

这有什么问题。

String NAME = "ABC";
    ContentResolver cr = getContentResolver();
    Cursor cursor = cr.query(ContactsContract.Contacts.CONTENT_URI, null,
            "DISPLAY_NAME = '" + NAME + "'", null, null);

    if (cursor.moveToFirst()) {
        String contactId = cursor.getString(cursor.getColumnIndex(ContactsContract.Contacts._ID));
        String number = "";
        String email = "";

        Cursor cursor_pn_email = cr.query(ContactsContract.CommonDataKinds.Phone.CONTENT_URI, null,
                ContactsContract.CommonDataKinds.Phone.CONTACT_ID + " = " + contactId, null, null);
        while (cursor_pn_email.moveToNext()) {
            number = cursor_pn_email.getString(cursor_pn_email.getColumnIndex(ContactsContract.CommonDataKinds.Phone.NUMBER));
            email = cursor_pn_email.getString(cursor_pn_email.getColumnIndex(ContactsContract.CommonDataKinds.Email.DATA1));

        }
        cursor_pn_email.close();


    }
    cursor.close();

我遇到了使用 phone 光标查找电子邮件的问题。以下是电子邮件光标的代码

      Cursor cursorEmail = cr.query(ContactsContract.CommonDataKinds.Email.CONTENT_URI,
                null,
                ContactsContract.CommonDataKinds.Email.CONTACT_ID + " = ?",
                new String[]{contactId},
                null);
        if (cursorEmail.moveToFirst()) {
            email = cursorEmail.getString(cursorEmail.getColumnIndex(ContactsContract.CommonDataKinds.Email.DATA));
        }