Android показывает контакты SIM и телефона

В моем коде я должен отображать только телефонные контакты: я следовал за предыдущими сообщениями, но я по-прежнему отображаю как телефонные, так и сим-контакты. Вот мой код:

Uri uri = ContactsContract.CommonDataKinds.Phone.CONTENT_URI;

String columIndex = ContactsContract.CommonDataKinds.Phone.DISPLAY_NAME;
String columIndexId = ContactsContract.CommonDataKinds.Phone.CONTACT_ID;
String numIndex = ContactsContract.CommonDataKinds.Phone.NUMBER;

Cursor cursor = getContentResolver().query(uri, null, null, null,ContactsContract.CommonDataKinds.Phone.DISPLAY_NAME+" ASC");

if(cursor!=null){
    while(cursor.moveToNext()) {
        ContactInfo ci = new ContactInfo();
        ci.setIdContact(Integer.parseInt(cursor.getString(cursor.getColumnIndex(columIndexId))));
        ci.setName(cursor.getString(cursor.getColumnIndex(columIndex)));
        ci.setNumberTel(cursor.getString(cursor.getColumnIndex(numIndex)));
        //if(!cursor.getString(cursor.getColumnIndex(columIndex)).equalsIgnoreCase(nome))
        listContact.add(ci);
    }
    cursor.close();

}

Это все объекты ContactInfo, и они будут показаны в списке (listContact, который является ArrayList).

Это действительно важно для меня, потому что мое приложение хорошо работает только на телефонные контакты, а не на сим-контакты.

1 ответ

Вы можете попытаться заменить свой Курсор этим, чтобы исключить контакты на симе:

import android.provider.ContactsContract.RawContacts;

Cursor cursor = getContentResolver().query(
    RawContacts.CONTENT_URI,
    new String[] { RawContacts._ID, RawContacts.ACCOUNT_TYPE },
    RawContacts.ACCOUNT_TYPE + " <> 'com.android.contacts.sim' AND "
        + RawContacts.ACCOUNT_TYPE + " <> 'com.anddroid.contacts.sim' AND " // HTC
        + RawContacts.ACCOUNT_TYPE + " <> 'vnd.sec.contact.sim' AND "
        + RawContacts.ACCOUNT_TYPE + " <> 'USIM Account' ",
        null,
        null);

Я не пробовал это, изменено с /questions/20880541/kak-poluchit-vse-kontaktyi-androida-no-bez-teh-kotoryie-na-simke/20880550#20880550

Примечание: на некоторых телефонах может потребоваться исключить несколько других RawContacts.ACCOUNT_TYPE лайк com.anddroid.contacts.sim а также vnd.sec.contact.simсм. /questions/29071643/kak-chitat-android-sim-kontaktyi-i-telefon-kontaktyi-otdelno/29071653#29071653

Другие вопросы по тегам