我正在构建一个UI,需要在列表视图中显示电话联系人列表.
我正在使用ContactsContract.Data和CursorLoader加载数据,然后将光标绑定到自定义适配器(从SimpleCursorAdapter扩展).
这里的问题是我不知道如何过滤掉SIM卡联系人.我有一个测试电话以及SIM卡上的电话都有相同的联系人,这导致列表视图具有重复的条目.如果删除SIM卡,重复项将消失.
我该如何过滤掉SIM卡联系人?我正在寻找一种使用1个查询获取数据的方法.
这是我现在加载数据的方式:
Uri queryUri = ContactsContract.Data.CONTENT_URI;
String[] projection = new String[] { ContactsContract.Contacts._ID, ContactsContract.Contacts.DISPLAY_NAME, ContactsContract.Data.MIMETYPE,
ContactsContract.RawContacts.ACCOUNT_TYPE };
selection = ContactsContract.Contacts.IN_VISIBLE_GROUP + " = 1 AND IS_PRIMARY = 1 AND MIMETYPE = '" + Phone.CONTENT_ITEM_TYPE + "'";
cursorLoader = new CursorLoader(getActivity(), queryUri, projection, selection, null, ContactsContract.Contacts.DISPLAY_NAME);
cursor = cursorLoader.loadInBackground();
//setup adapter, bind to listview etc..