Android中文联系人拼音排序及检索补丁3.5版 for Android 1.5(0623更新)

donut/1.6用户请到这里下载

更新记录:

  • 2009-06-23:在zixia的帮助下,发现了处理长姓名的bug。现在安全和稳定性更好了。下载3.5版
  • 2009-05-03:稍微加快了一点点速度。提供了更灵活的方式,可以支持多种固件和recovery,详见下面的安装方法。下载3.43版
  • 2009-05-02:第二次更新,可以支持更广泛的甚至未来的固件。但对recovery有要求。目前在JF v1.43的recovery上测试通过。下载3.42版
  • 2009-05-02:支持直接输入中文检索。在原版ADP 1.5和JF ADP 1.5测试通过。下载3.41版
  • 2009-05-01:开始支持Android 1.5下载3.4版

主要功能:

  • 联系人按拼音排序
  • 用中文、全拼、简拼、简拼混合全拼和email地址检索联系人

安装方法:

  • 和刷固件的方法一样(建议使用JF的recovry程序)
  • 安装后如果无效,就进命令行先运行命令“su”。使用T-Mobile固件的,运行命令“/data/patch/uptm.sh”;使用其它固件的运行命令“/data/patch/up.sh”

劳动节,要劳动,而且要做公益劳动!

http://sunner.cn/pinyin-patch-v3.41.zip

在我的ADP 1.5原版上测试通过。一切功能照旧,使用方法照旧,只是支持1.5了。1.0版(也就是RC33、RC9等)的用户请继续使用3.21版的补丁。

原理上没有任何变化,补丁代码也没有一行变化,就是重新在1.5下编译了一下。有的目标文件甚至大小都没有变化。只有icudt38l.dat文件跟着1.5做了一个极其微小的调整。整体来说,应该比把之前的补丁直接用到1.5上稳定一些(心理层面)。

从cupcake的代码看,对日文方方面面的支持已经近乎完备了,不仅能日文排序,还能日文检索,还能按日本习惯分割电话号码……按照日文实现的思路和路线(比如在联系人数据库里增加了一个字段phonetic_name),很快也就能实现中文的类似功能。不过不知道谷歌中国、中国移动和来弄我这些android先驱们在干啥,源码树里一行这样的代码都还没有呢。

Android中文联系人拼音排序及检索补丁3.5版 for Android 1.5(0623更新)” 中有 81 条评论

  1. 谷歌中国忙着做气件呢。我打电话问过,说大陆压根没有相关事业部。所以大陆注册开发者要冒充外国人。

    幸亏,我们还有你。。。。

  2. 我修改了Contacts,就是用phonetic_name来保存中文姓名的拼音的,这样也实现了按拼音排序。默认在CHINA和TAIWAN Locale下会做这一步

    日文检索我看到了,您说的“按日本习惯分割电话号码”是什么意思?

    日语的发音少,中国拼音就太多了。

    1. 分割电话号码就是把1795113912345678显示为17951-139-1234-5678。
      另外,用phonetic_name存拼音进行排序,排序的时候会和真正的拼音排序有些不一样吧?

        1. 它的build.id居然是rc33的。现在各种固件的build.id非常乱,再加上recovery的build.id,就更乱了。所以改变了固件的判定方式。你装一下最新版试试

  3. 我试过用androidin网站的mod3整合板,以及JF的1.5版,发现都只能是拼音排序但是无法做到检索。
    我试过3.40版和3.42版,均无效。请教如何解决?谢谢。

  4. sunner你好!感谢你制作的一系列补丁包!
    有个问题想问你一下,关于JF v1.5中 /system 下空间是比较大,可否将你的包中 data/patch下的libicudata.so库文件移到 system下重新签名后再进行刷包呢?

    1. 不知道即将到来的us和uk版的system是否会有这么多空间,所以就没动位置。你可以在recovery模式下,进入命令行,直接把它mv到system就行。

  5. Jf1.5刷了支持全拼、简拼、简拼混合全拼和email地址检索联系人吗,我的只能中文检索,命令输过了

  6. 有人说:用了sunner的拼音排序3.43,排序没有问题,但失去了硬盘搜索

    我也发现这样的问题了,能不能再更新一下呢

    我用的是JF1.51 CRB43 US

  7. 你好,我试用了3.43版,在HiAPK2.2 SPL版本上,有两个问题求教:

    1、更新 update 后,未生效。然后手工运行 /data/patch/up.sh ,到了 sqlite3 contacts.db ‘UPDATE people SET name=`name`;’ 的时候 SQLite3 seg fault 了。可能是因为我有 4000 多个联系人的缘故。然后我手工 sqlite> UPDATE people SET name=`name` where round(_id/1000)=4.0; 从 1.0/2.0/3.0/4.0/5.0 更新过来,就可以了。然后运行了后面的 reindex ,这样是否应该就没问题?

    2、试用后,发现一部分姓名和email可以检索了,但是有很多检索不到。比如名字是“伯伯”的用户,我用拼音 bobo 和 bb 都搜索不到。还有一部分姓名是能搜索一半,比如“李立新”,在 lil 时还在搜索结果中,但是却不在 lili 的搜索结果中。

    希望解答一下,也加了作者的gtalk,谢谢。

    1. 阿星是谁?好多做g1 rom的啊。有一些已经整合进去的。反正二进制和代码都随便下载,谁想整合都无所谓,给个credit就行了

  8. 刷了,英文名字不支持查找了。怎么恢复啊,我不想刷机。因为我的机器把虚拟内存推到SD了。不能保留数据。

  9. Hi, 首先想跟你说声谢谢, 因为你这个东西太好用了.
    不过,因为出了新的rom, 作者您这个插件一装就会死机. 然后我仔细看了下, 那是因为 dialer 是htc做的, 而不是google 开发的那个,所以有些变化.

    模仿hero的rom 自带另一个dialer 多了exchange和htc sync 估计问题就在这,或者那个 group “phone” 或”google” 不知道哪个. 望作者能作出针对这些rom的更新.

    不然你这个插件很好, 跟magic也完美兼容的 (以前的rom)

  10. Sunner兄,我在cupcake上,模拟器上如下步骤:
    1、拷贝你的icudt38l.dat到目录external/icu4c/stubdata下
    2、将icudt38l.dat改名为icudt38l-default.dat
    3、在目录external/icu4c下编译
    4、在顶级目录下编译
    5、启动模拟器

    这时在模拟器上输入contact,成功实现拼音排序。现在问题是我没有搞清楚如何生成icudt38l.dat。根据你的记录,下载icu4c源码,修改root.txt,编译,生成新的en.res。可是我下载的3.8,在source/data目录下,并没有root.txt文件,也不知道如何生成新的en.res。能否将如何生成icudt38l.dat的过程再描述一下?非常感谢!

  11. 我的source/data 目录下,压根就没有coll这个目录。是我下载版本不对,还是其他问题?:(
    下面是source/data目录下的文件和目录列表:
    build.xml
    icu-config.xml
    icupkg.inc.in
    makedata.mak
    Makefile
    misc
    unidata
    cldr-icu-readme.txt
    icupkg.inc
    in
    makedata.vcproj
    Makefile.in
    out

  12. 非常期待孙老师的大作啊,自从拼音排序不能兼容之后,我就停止刷机了。再快的系统,没有孙老师的拼音排序、检索补丁也没有多大用啊。期待ing

  13. Sunner,2.73系统,进入Recovery ,Update之后(没有Wipe),进入系统提示android.process.acore进程意外停止要求强制关闭-0-这是怎么回事……

  14. 能不能将姓 “沈” 的联系人朋友改为s有效,因为大部分都是读“shen”的,或者两者都有效,谢谢。

  15. 能否帮忙看看Adroid 2.1。 如Nexus one的检索, 现在能排序,检索不知道如何,contacts.db 有所变化了

  16. 我为什么失败了?谢谢回复
    我的步骤:
    1. 下载最新的froyo 版本,用:“repo init -u git://android.git.kernel.org/platform/manifest.git
    repo sync”
    2.编译得到 system.img.
    3.把编译好的system.img放入sdk image位置,start 模拟器,还是没有按中文排序,但sdk里人家自带的system.img可以按照中文排序。

    大侠帮忙分析分析,非常感谢。

    1. 你好,我的1.5的中文排序已经做好了,响应速度也挺快的
      1.被修改的文件有4个:一个Android.mk,sqlite3.c, ContactsProvider.java,ContactsListActivity.java,其中每个文件均只改了一行代码。
      2.新添加的文件3个:hanzi.c,hanzi.h,hanzi_array.h
      我的做法里没有刷rom等操作,就直接好了,在这里跟您分享一下。不过现在2.2的中文排序还没好。

  17. 博主您好,我刷了这个3.5的补丁之后,重启结果老是出现the process android.process.acore has stopped
    点拨号,也进不去了,我系统中原来安装了一个“触宝只能拨号”,也打不开,也是不停出现 the process com.cootek.smartdialer has stopped.(这个进程就是触宝智能拨号的进程)
    现在该怎么办呢?

  18. 我是1.5rom,G2,rom版本是3.05 401.3欧版的。
    现在电话打进来,直接没反应了,什么操作都打不开,只有锁屏,开锁是正常的,其他任何程序打不开。

          1. 博主,您好,我以前用的是非官方的rom,2.1的,2.2的也刷过,觉得耗电比较厉害,而且稳定性稍差,有些界面下拖动的时候会比较卡。
            所以现在用的是官方1.5的rom。
            但是这个拨号不能用拼音检索,非常麻烦,您这个补丁不是针对1.5的rom的吗?
            不好意思,我并非您这样的技术达人,麻烦您给我指条明路。

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注