【发布时间】:2018-02-20 18:45:33
【问题描述】:
我在 RecyclerView 和以下代码检索联系人上显示联系人
Uri Contact_URI=ContactsContract.CommonDataKinds.Phone.CONTENT_URI;
return new CursorLoader(getActivity(),Contact_URI,null,null,null,Build.VERSION.SDK_INT
>= Build.VERSION_CODES.HONEYCOMB ?
ContactsContract.Contacts.DISPLAY_NAME_PRIMARY :
ContactsContract.Contacts.DISPLAY_NAME+ "ASC");
但有些联系人会被多次显示,所以我决定在account_type 列上过滤联系人。下面的代码过滤器基于account_type
if(list.getString(list.getColumnIndex("account_type")).equals("Local Phone Account") || list.getString(list.getColumnIndex("account_type")).equals("SIM Account") ) {
textView.setText(list.getString(list.getColumnIndex(Build.VERSION.SDK_INT
>= Build.VERSION_CODES.HONEYCOMB ?
ContactsContract.Contacts.DISPLAY_NAME_PRIMARY :
ContactsContract.Contacts.DISPLAY_NAME)));
number.setText(list.getString(list.getColumnIndex(ContactsContract.CommonDataKinds.Phone.NUMBER)));
number.setText(list.getString(list.getColumnIndex("account_type")));
}
问题是 sim 卡和电话联系人的 account_type 值因设备而异。在Samsung GT-l9082 中,为 sim "Sim Account" 和 Phone "Local Phone Account" 提供了值,但是当我在 Galaxy J5 上对其进行测试时,它针对account_type 显示了针对 sim 和电话联系人的不同值。我只想显示 Sim 和电话联系方式
【问题讨论】:
标签: android android-contacts android-cursor