2011-12-15 3 views
0

Я хочу, чтобы получить номер телефона, чтобы набрать номер из контактов, вот код, я тестирование:Android - Как получить телефон # от контактов

ContentResolver cr = getContentResolver(); 
     Cursor cur = cr.query(ContactsContract.Contacts.CONTENT_URI, 
       null, null, null, null);  

if (Integer.parseInt(cur.getString(
       cur.getColumnIndex(ContactsContract.Contacts.HAS_PHONE_NUMBER))) > 0) { 
      Cursor pCur = cr.query(
     ContactsContract.CommonDataKinds.Phone.CONTENT_URI, 
     null, 
     ContactsContract.CommonDataKinds.Phone.CONTACT_ID +" = ?", 
     new String[]{id}, null); 
     while (pCur.moveToNext()) { 
     // Do something with phones 
     } 
     pCur.close(); 
    } 

По какой-то причине он получает ошибку в «новом Стинге [] {id}, null); Затмения ошибка # 1 -id не может быть решена с переменной Затмения ошибка # 2 -типа несоответствие: не может конвертировать из ArrayList в строку

Оказывается, может быть, так как им нуб, «идентификатор» уже используется ArrayList ? Но когда я меняю «id» на «id2», Elcipse все еще досужает, как это ...

Пожалуйста, сообщите?

Спасибо, FlinxSYS

+1

Из кода вы в курсе, что мы не можем понять, что переменная 'ID'. где вы определили «id» и какова его ценность? – Karthik

ответ

0

Вот рабочий код для вас:

public static void getContacts(ContentResolver cr) { 
    Cursor cur = cr.query(ContactsContract.Contacts.CONTENT_URI, null, null, null, null); 
    if (cur.getCount() > 0) { 
     while (cur.moveToNext()) { 
     // read id 
      String id = cur.getString(cur.getColumnIndex(ContactsContract.Contacts._ID)); 
      // read names 
      String displayName = cur.getString(cur.getColumnIndex(ContactsContract.Contacts.DISPLAY_NAME)); 
      // Phone Numbers 
       Cursor pCur = cr.query(ContactsContract.CommonDataKinds.Phone.CONTENT_URI, null, 
         ContactsContract.CommonDataKinds.Phone.CONTACT_ID + " = ?", new String[] { id }, null); 
       while (pCur.moveToNext()) { 
        String number = pCur.getString(pCur.getColumnIndex(ContactsContract.CommonDataKinds.Phone.NUMBER)); 
        String typeStr = pCur.getString(pCur.getColumnIndex(ContactsContract.CommonDataKinds.Phone.TYPE)); 
      } 
      pCur.close(); 
... 

Ссылка: http://ganeshtiwaridotcomdotnp.blogspot.com/2011/10/android-code-for-reading-phone-contacts.html

+0

gt_ebuddy - где я могу разместить свое контактное имя для поиска, которое я выбрал, например, «Сэм», чтобы он получил «Сэм» из моего списка контактов? Я хочу понять, пожалуйста. – user1082770

+0

вам нужно сравнить «displayName» с фиксированным именем «Sam» в вашем случае. Попробуйте распечатать все контактные данные (system.out.println) и сначала сыграть с этим кодом ..... – gtiwari333

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