2013-06-08 3 views
2

Я искал в Интернете и SO, не смог найти подходящий ответ и, следовательно, разместил следующее.Загрузка Контакты на Android

Я хочу загрузить контакты с моего телефона в свои приложения, чтобы импортировать номера телефонов. Что бы я хотел сделать.

  1. «Stacy C» имеет два мобильных номера на ее имя
  2. «Стейси Jacob» имеет один номер мобильного

Теперь, когда я список контактов я хочу три строки с именем и номером перечисленных ниже. Я могу импортировать контакты, но не знаю, как проверить, имеет ли контакт несколько номеров против их имени.

Что-то похожее на приложение WhatsApp. Я использую курсор с простой загрузкой, чтобы перечислить контакты прямо сейчас.

+0

post ur образец кода? –

+0

@StackOverflowUser здесь http://pastebin.com/cDmNNWpY –

ответ

3

Вам нужно запросить другой uri для всех номеров. Я даю вам пример .. вы можете посмотреть в

private static final String[] CONTACTS_PROJECTION = new String[] { 
      Contacts._ID, 
      Contacts.HAS_PHONE_NUMBER 
    }; 

    private static final String[] PHONES_PROJECTION = new String[] { 
      Phone.TYPE, 
      Phone.NUMBER 
    }; 

    private void readAllContact() { 
     Cursor mCursor = mResolver.query(Contacts.CONTENT_URI, CONTACTS_PROJECTION, null, null, null); 
     while (mCursor.moveToNext()) { 
      String id = mCursor.getString(mCursor.getColumnIndex(Contacts._ID)); 
      // Query phone numbers for this contact. 
      if (Integer.parseInt(mCursor.getString(mCursor.getColumnIndex(Contacts.HAS_PHONE_NUMBER))) > 0) { 
       ArrayList<String> numbers = getPhoneNumbers(id); 

      } else { 
       Log.d(TAG, "No phones associated with this Contact"); 
      } 
     } 
    } 

    private ArrayList<String> getPhoneNumbers(String id) { 
     ArrayList<String> result = new ArrayList<String>(); 
     Cursor mCursorPhones = mResolver.query(Phone.CONTENT_URI, 
       PHONES_PROJECTION, 
       Phone.CONTACT_ID + " = ?", 
       new String[]{id}, 
       null); 
     while (mCursorPhones.moveToNext()) { 
      //Read type of phone 
      //mCursorPhones.getString(mCursorPhones.getColumnIndex(Phone.TYPE)); 
      //Read Phone 
      result.add(mCursorPhones.getString(mCursorPhones.getColumnIndex(ContactsContract.CommonDataKinds.Phone.NUMBER))); 
     } 
     mCursorPhones.close(); 
     return result; 
    } 

И для отображения строк, количество чисел, года должны реализовать свою собственную логику. Вы можете создавать записи, зависящие от числа.