2013-07-02 2 views
4

Мне нужно получить имя, адрес электронной почты и номер телефона из каждого контакта моего списка контактов.Получение информации о пользователе из списка контактов Android

Проблема в том, что я могу получить имя и номер телефона, но не адрес электронной почты. Я получаю номер телефона вместо электронной почты.

Вот мой код:

Cursor phones = getContentResolver().query(ContactsContract.CommonDataKinds.Phone.CONTENT_URI, null, null,null, null); 
     while (phones.moveToNext()) { 

      String name = phones.getString(phones.getColumnIndex(ContactsContract.CommonDataKinds.Phone.DISPLAY_NAME)); 
      String phoneNumber = phones.getString(phones.getColumnIndex(ContactsContract.CommonDataKinds.Phone.NUMBER)); 
      String email = phones.getString(phones.getColumnIndex(ContactsContract.CommonDataKinds.Email.ADDRESS)); 

      ContactItem objContact = new ContactItem(); 
      objContact.setName(name); 
      objContact.setPhoneNo(phoneNumber); 
      objContact.setEmail(email); 
      list.add(objContact); 

     } 
     phones.close(); 

ответ

4
Cursor cursor = getContentResolver().query(ContactsContract.Contacts.CONTENT_URI,null, null, null, null); 
    while (cursor.moveToNext()) { 
     String contactId = cursor.getString(cursor.getColumnIndex(
       ContactsContract.Contacts._ID)); 

     //May want to get basic info here like name, phone 
     //Example: 
     //Cursor phones = getContentResolver().query(ContactsContract.CommonDataKinds.Phone.CONTENT_URI, null, ContactsContract.CommonDataKinds.Phone.CONTACT_ID +" = "+ contactId, null, null); 
     //while (phones.moveToNext()) { 
     // String phoneNumber = phones.getString(phones.getColumnIndex(ContactsContract.CommonDataKinds.Phone.NUMBER)); 
     // Log.i("phone", phoneNumber); 
     //} 
     //phones.close(); 

     Cursor emails = getContentResolver().query(ContactsContract.CommonDataKinds.Email.CONTENT_URI, null, ContactsContract.CommonDataKinds.Email.CONTACT_ID + " = " + contactId, null, null); 
     while (emails.moveToNext()) { 
      String emailAddress = emails.getString(
        emails.getColumnIndex(ContactsContract.CommonDataKinds.Email.DATA)); 

      Log.i("emails", emailAddress); 
     } 
     emails.close(); 
    } 
    cursor.close(); 

Источник и ссылки: How to read contacts on Android 2.0

+0

Спасибо за обмен, +1. – justLearning

0

общественный недействительный onActivityResult (интермедиат reqCode, внутр ResultCode, Намерение данные) { супер. onActivityResult (reqCode, resultCode, data);

switch (reqCode) { 
    case (PICK_CONTACT): 
     if (resultCode == Activity.RESULT_OK) { 
      String phoneNumber = null; 
      String name = null; 
      String emailAddress = null; 

      Uri contactData = data.getData(); 
      Cursor c = managedQuery(contactData, null, null, null, null); 

      if (c.moveToFirst()) { 
       Cursor cursor = null; 

       cursor = getContentResolver().query(ContactsContract.Contacts.CONTENT_URI, null, null, null, null); 
       while (cursor.moveToNext()) { 
        String contactId = cursor.getString(cursor.getColumnIndex(ContactsContract.Contacts._ID)); 
        name = c.getString(c.getColumnIndexOrThrow(ContactsContract.Contacts.DISPLAY_NAME)); 
        // May want to get basic info here like name, phone 
        // Example: 
        Cursor phones = getContentResolver().query(ContactsContract.CommonDataKinds.Phone.CONTENT_URI, null, ContactsContract.CommonDataKinds.Phone.CONTACT_ID + " = " + contactId, 
          null, null); 
        while (phones.moveToNext()) { 
         phoneNumber = phones.getString(phones.getColumnIndex(ContactsContract.CommonDataKinds.Phone.NUMBER)); 
         Log.i("phone", phoneNumber); 
        } 
        phones.close(); 

        Cursor emails = getContentResolver().query(ContactsContract.CommonDataKinds.Email.CONTENT_URI, null, ContactsContract.CommonDataKinds.Email.CONTACT_ID + " = " + contactId, 
          null, null); 
        while (emails.moveToNext()) { 
         emailAddress = emails.getString(emails.getColumnIndex(ContactsContract.CommonDataKinds.Email.DATA)); 
         Log.i("emails", emailAddress); 
        } 
        emails.close(); 
       } 
       cursor.close(); 

       Log.i(DEBUG_TAG, "Got a contact result: " + name + emailAddress + "Phone Number is :- " + phoneNumber); 
       Toast.makeText(getApplicationContext(), name, Toast.LENGTH_SHORT).show(); 

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