对Contacts了解就会知道(不了解可以了解下),每个联系人都有一个sort_key字段,如果查询中没有设置sortOrder,默认就会以 sort_key字段为排序依据。名字的检索其实也是根据sort_key来做的(比如拨号盘的模糊匹配:数字转成字母,再到拼音,最后得到汉字)。sort_key是根据名字生成的:如果联系人名字中包含字母,sort_key和name保持一致;如果名字是汉字,生成的sort_key,拼音-汉字-拼音-汉字。。。其中拼音全大写,中间以空格分割,如:”张三“-----sort_key:"ZHANG 张 SAN 三"。
当名字发生变化Sort_key是在packages/providers/ContactsProvider/src/com/android /providers/contacts/ContactsProvider2.java中生成的。具体调用如下:
&nbs
当名字发生变化Sort_key是在packages/providers/ContactsProvider/src/com/android /providers/contacts/ContactsProvider2.java中生成的。具体调用如下:
if (displayNameStyle == FullNameStyle.CHINESE ||
displayNameStyle == FullNameStyle.CJK) {
sortKeyPrimary = sortKeyAlternative =
ContactLocaleUtils.getIntance().getSortKey(
displayNamePrimary, displayNameStyle);
}
&nbs
Android汉字转拼音实现(HanziToPinyin)

这篇博客介绍了如何在Android系统中实现汉字转拼音的功能,引用了com.android.internal.util.HanziToPinyin.java源码,并提到了在4.x版本上的代码变更。提供了在2.x和4.x上测试通过的代码下载链接。
最低0.47元/天 解锁文章
5565

被折叠的 条评论
为什么被折叠?



