ContactsContract查找联系ID的电话号码

cyn*_*joy 2 android uri contactscontract

我试图通过他们的contactId查找联系人的电话号码,bll结果返回 - 电话号码:1

我尝试过围绕SO使用其他示例,但我一直在光标上得到0计数

Uri uri = ContentUris.withAppendedId(Data.CONTENT_URI, contactId);

Log.i(TAG, "Locate Contact by Id: " + contactId + " at Uri: " + uri.toString());

Cursor cursor = this.getContentResolver().query(uri, null, null, null, null);

try {
    if (cursor.moveToFirst()) {
        Log.i(TAG, "Phone Number: " + cursor.getString(cursor.getColumnIndex(Phone.NUMBER)));
    }
} finally {
    cursor.close();
}
Run Code Online (Sandbox Code Playgroud)

jso*_*fry 6

试试这个:

private ArrayList<String> getPhoneNumbers(String id) 
{
    ArrayList<String> phones = new ArrayList<String>();

    Cursor cursor = mContentResolver.query(
            CommonDataKinds.Phone.CONTENT_URI, 
            null, 
            CommonDataKinds.Phone.CONTACT_ID +" = ?", 
            new String[]{id}, null);

    while (cursor.moveToNext()) 
    {
        phones.add(cursor.getString(cursor.getColumnIndex(CommonDataKinds.Phone.NUMBER)));
    } 

    cursor.close();
    return(phones);
}
Run Code Online (Sandbox Code Playgroud)