2014-10-27 151 views
1

如何从SIM卡无法获得联系人列表?Android获取联系人列表,但没有SIM卡联系人

到目前为止我的光标看起来像这样

public final static Uri CONTENT = ContactsContract.CommonDataKinds.Phone.CONTENT_URI; 
public final static String ID = ContactsContract.CommonDataKinds.Phone.CONTACT_ID; 
public final static String NAME = ContactsContract.CommonDataKinds.Phone.DISPLAY_NAME; 
public final static String NUMBER = ContactsContract.CommonDataKinds.Phone.NUMBER; 
public final static String PHOTO_URI = ContactsContract.CommonDataKinds.Photo.PHOTO_URI; 
public final static String STARRED = ContactsContract.CommonDataKinds.Phone.STARRED; 

String mSelectionClause = NAME + " IS NULL"; 
mOrderBy = NAME + " COLLATE LOCALIZED ASC"; 

Cursor cursor = getActivity().getContentResolver().query(CONTENT, null, mSelectionClause, null, mOrderBy); 

我应该怎么添加到查询删除从结果SIM卡联系人?

+0

你检查这篇文章? http://developer.android.com/training/contacts-provider/retrieve-names.html – 2014-10-27 09:44:06

+0

@OleksiiKropachov是的,但我找不到有关我的问题的任何信息 – Mariusz 2014-10-27 10:00:47

回答

1

我发现folution在

android showing both sim and phone contacts

刚刚添加

private final String excludeSim = ContactsContract.RawContacts.ACCOUNT_TYPE + " <> 'com.android.contacts.sim' AND " 
    + ContactsContract.RawContacts.ACCOUNT_TYPE + " <> 'com.anddroid.contacts.sim' AND " // HTC 
    + ContactsContract.RawContacts.ACCOUNT_TYPE + " <> 'vnd.sec.contact.sim' AND " 
    + ContactsContract.RawContacts.ACCOUNT_TYPE + " <> 'USIM Account' "; 
    ... 
    String mSelectionClause = NAME + " IS NULL AND " + excludeSim;