具体的代码在
packages\providers\contactsprovider\src\com\android\providers\contacts\ContactL
ocaleUtils.java中的ChineseContactUtils.getSortKey()方法中。
参考一下通讯录的数据库文件中的sort_key字段,一目了然。
具体的做法就是调用com.android.internal.util.HanziToPinyin工具,将名字转换为拼
音,然后根据各种组合和首字母组合生成sort_key。
比如“水木”,生成的可能有"S M" "SHUI M" "SHUI MU" "M S" "MU S"等等。
其实转换为拼音除了Android提供的
frameworks\base\core\java\com\android\internal\util\HanziToPinyin.java以外,
Android中还提供了一个IBM提供的国际语言处理的库ICU。这个库更加强大。
【 在 chenmervyn (神) 的大作中提到: 】
: 就像Contact(通讯录)中的,姓名按拼音排序,并知道是什么拼音,进而分组,是如何
: 实现的?
: PS:找了Contact源码,太多,目前未果。求指点。