2013-07-30 2 views

ответ

2

Это должно помочь вам; Замените People.NAME именем, которое вы хотите.

String[] projection = new String[]{ 
      People.NAME, 
      People.NUMBER 
     }; 

    Cursor c = ctx.getContentResolver().query(People.CONTENT_URI, projection, 
    null, null, People.NAME + " ASC"); 
    c.moveToFirst(); 
    int nameCol = c.getColumnIndex(People.NAME); 
    int numCol = c.getColumnIndex(People.NUMBER); 

    int nContacts = c.getCount(); 
    do{ 
     // Do your work here 
    } while(c.moveToNext()); 

Надеюсь, что это поможет.

+1

спасибо, было очень полезно – Develop2Android

0

Должно работать для вас. Возвращение Список всех номеров, присвоенных данному контакту

public static List<String> getContactByName(Context context, 
     String name) { 
     String[] mProjection = { 
       ContactsContract.CommonDataKinds.Phone.DISPLAY_NAME, 
       ContactsContract.CommonDataKinds.Phone.CONTACT_ID, 
       ContactsContract.CommonDataKinds.Phone.NUMBER }; 

     Cursor cursor = context.getContentResolver().query(
       ContactsContract.CommonDataKinds.Phone.CONTENT_URI, 
       mProjection, 
       ContactsContract.CommonDataKinds.Phone.DISPLAY_NAME + " LIKE '%" 
        + name + "%'", null, null); 

     List<String> listOfPhonesAssignedToThisName = new ArrayList<String>(); 
     while(cursor.moveToNext()){ 
      listOfPhonesAssignedToThisName.add(cursor.getString(cursor.getColumnIndexOrThrow("DISPLAY_NAME"))); 
     } 
     return listOfPhonesAssignedToThisName; 
    } 

Примечание: эта функция сравнивает все, что выглядит LIKE свое отображаемое имя. Если вы хотите, чтобы найти именно тот человек, что вам нужно настроить часть:

ContactsContract.CommonDataKinds.Phone.DISPLAY_NAME + "LIKE '%" + имя + "%', NULL, NULL);

к: ContactsContract.CommonDataKinds.Phone.DISPLAY_NAME + "LIKE '" + имя + "'", NULL, NULL);

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