2015-06-23 5 views
0

У меня есть программа, которая считывает контакты, а затем отображает ее в ListView. Но проблема в том, что у меня есть всего 25k + контактов в моем телефоне, а 60% контактов - с Google. Поэтому для чтения контактов требуется слишком много времени. Как читать контакты с номером телефона?Чтение только реальных контактов

Я использую этот код:

Cursor phones = as.getApplicationContext().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)); 


} 
phones.close(); 
+0

Вопрос в том, какой адаптер вы используете? – pskink

+0

и почему вы используете цикл while? какой адаптер вы используете? – pskink

+0

Что я предполагаю использовать? – Emma

ответ

0

Где раздел может быть использован для фильтрации контактов с телефонными номерами. Используйте приведенный ниже код для извлечения контактов.

CursorLoader cursorLoader = new CursorLoader(getActivity(), ContactsContract.Contacts.CONTENT_URI, new String[]{ContactsContract.Contacts._ID, ContactsContract.Contacts.DISPLAY_NAME}, 
      ContactsContract.Contacts.HAS_PHONE_NUMBER + " > 0 ", null, ContactsContract.Contacts.DISPLAY_NAME + " COLLATE NOCASE ASC;"); 

Для ознакомления с контактами вам потребуются следующие разрешения.

<uses-permission android:name="android.permission.READ_CONTACTS" /> 
+0

Спасибо! Но я использую это: как мне изменить этот код? : 'ContentResolver cr = getContentResolver(); Курсор cur = cr.query (ContactsContract.CommonDataKinds.Phone.CONTENT_URI, null, null, null, null); ' – Emma

0

Вы можете использовать HAS_PHONE_NUMBER. ContactsContract.Contacts.HAS_PHONE_NUMBER . Пример

String hasPhone = cursor.getString(cursor.getColumnIndex(ContactsContract.Contacts.HAS_PHONE_NUMBER)); 

    if (hasPhone.equals(ContactsContract.Contacts.HAS_PHONE_NUMBER)) 
     //do your thing 

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

  • Нет связанных вопросов^_^