android汉字排序,Android联系人排序字段汉字问题

以前读取联系人,按名字排序的字段是下面这个样子

ContactsContract.CommonDataKinds.Phone.SORT_KEY_PRIMARY

后来在6.0的手机上,读取的sort key,竟然是name的copy,比如读一个叫王二的联系人,正常的sort key 应该是“wang er”或者“W”,但6.0的系统读取出来还是"王二"

最后经过一番折腾发现应该这样写

if(android.os.Build.VERSION.SDK_INT>=19) {

PHONES_PROJECTION[PHONES_SORT_INDEX] ="phonebook_label";

}

也就是sort key的字段名字改了,附上一个小demo,内容很少直接贴代码

private static final String[] PHONES_PROJECTION = new String[]{

ContactsContract.CommonDataKinds.Phone.DISPLAY_NAME,

ContactsContract.CommonDataKinds.Phone.SORT_KEY_PRIMARY};

private static final int PHONES_NUMBER_INDEX = 0;

private static final int PHONES_SORT_INDEX = 1;

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

if (android.os.Build.VERSION.SDK_INT >= 19) {

PHONES_PROJECTION[PHONES_SORT_INDEX] = "phonebook_label";

}

Cursor cur = getContentResolver().query(ContactsContract.CommonDataKinds.Phone.CONTENT_URI,

PHONES_PROJECTION, null, null, null);

if (cur != null) {

while (cur.moveToNext()) {

String contactName = cur.getString(PHONES_NUMBER_INDEX);

String sortKey = cur.getString(PHONES_SORT_INDEX);

Log.i("Lucien_sort", "sortKey:" + sortKey + " contactName:" + contactName);

}

}

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值