2012-06-11 3 views
0

Есть ли способ отображения имен контактов вместо номеров контактов?Как изменить номера контактов на имена контактов?

Этот метод возвращает телефонные номера в пределах почтового ящика, но мне нужны имена вместо:

UPDATE: код изменен с оригинала.

ПРИМЕЧАНИЕ. Я пытаюсь изменить номера контактов, чтобы отобразить их соответствующие имена контактов в INBOX. Я не пытаюсь получить список всех доступных имен контактов.

public ArrayList<String> fetchInboxNumbers() { 

    ArrayList<String> sms = new ArrayList<String>(); 
    Uri uriSms = Uri.parse("content://sms/inbox"); 

    Cursor cursor = getContentResolver().query(uriSms, 
      new String[] { "_id", "address", "date", "body" }, null, null,                
      null); 

    cursor.moveToFirst(); 
    while (cursor.moveToNext()) { 

     String address = cursor.getString(1); // Displays phone number 

     sms.add(address); 
    } 
    return sms; 
} // END FETCHINBOX 

ответ

2

Есть ли способ, чтобы отобразить имена контактов вместо контакта числа?

Следующий фрагмент поможет вам.

 String whereName = ContactsContract.Data.MIMETYPE + " = ?"; 
     String[] whereNameParams = new String[] { ContactsContract.CommonDataKinds.StructuredName.CONTENT_ITEM_TYPE }; 
     Cursor nameCur = contentResolver.query(ContactsContract.Data.CONTENT_URI, null, whereName, whereNameParams, ContactsContract.CommonDataKinds.StructuredName.GIVEN_NAME); 
     while (nameCur.moveToNext()) { 
      String given = nameCur.getString(nameCur.getColumnIndex(ContactsContract.CommonDataKinds.StructuredName.GIVEN_NAME)); 
      String family = nameCur.getString(nameCur.getColumnIndex(ContactsContract.CommonDataKinds.StructuredName.FAMILY_NAME)); 
      String display = nameCur.getString(nameCur.getColumnIndex(ContactsContract.CommonDataKinds.StructuredName.DISPLAY_NAME)); 
     } 
     nameCur.close(); 
+0

я понял, что допустил ошибку в коде, который я отправил ранее. Это версия, с которой я работаю. Я читаю цифры в моем смс-папке, но показывает номера телефонов. Вы знаете, как применить к этому свой код? – SpicyWeenie

0

Я хотел бы добавить к ответу @Vipul Shah.

не было бы лучше добавить проекцию только с теми столбцами, которые вам нужны для восстановления?

new String [] { ContactsContract.CommonDataKinds.Phone._ID, 
ContactsContract.CommonDataKinds.Phone.NUMBER, 
ContactsContract.CommonDataKinds.Phone.DISPLAY_NAME } 

С уважением

Смежные вопросы