Android初级篇笔记-通讯录联想功能的实现

这篇博客详细记录了在Android中实现通讯录联想功能的过程,包括ContactslistDictionary.java、PinyinDecoder.java和PinyinAPI.java的角色。内容涉及到通过Pinyin4j获取汉字拼音,使用JNI调用C++代码来操作通讯录词典,以及如何在后台通过AsyncTask加载通讯录信息。
摘要由CSDN通过智能技术生成


ContactslistDictionary.java

实现3件事:

● OpenContact()

   通过调用了PinyinDecoder.java中的opencontact()函数;

● Load info from Contacts list;

   逐个获取通讯录的讯息,并且通过Pinyin4j类,获得汉字对应的拼音;再调用了PinyinDecoder.java中的put_lemma()函数;

● CloseContact();

   调用了PinyinDecoder.java中的closecntact()函数;


PinyinDecoder.java

实现了3件事:

● 调用了PinyinAPI.java 中的openContact()函数;

● 调用了PinyinAPI.java 中的append_lemma()函数;

● 调用了PinyinAPI.java 中的closeContact()函数;

 

PinyinAPI.java 声明了部分native函数;

● 在openContact()函数中,将得到的通讯录词典的绝对地址 String类型转化为Byte[] ;调用了Native函数,先将对应的通讯录词典删除nativeRemoveExtDict(),再重新创建

nativeOpenContactslist();

●在closeContact()函数中,调用了nativeCloseContactslist();关闭通讯录词典,再将该词典内容添加到词库中openExtDict_();

● 在append_lemma()函数中,调用nativeAppendContactslist()函数;

当传递的参数是 String类型的汉字,则类型不变,当是字符串,则变换成对应的byte[]数组。

 

Jni_pinyin.cpp

注册并定义了native函数,

●nativeOpenContactslist()函数调用了Pinyinime.cpp 中的 im_open_contract_list()函数;

●nativeAppendContactslist()函数调用了im_append_contacts_list()函数;

●nativeCloseContactslist()函数调用了im_close_contacts_list()函数;

 

Pinyinime.cpp

● im_open_contract_list()函数执行了load_dict()函数;

● im_append_contacts_list()函数执行put_lemma()函数;

● delete指向该通讯录词典的指针;

 

ContactActivity.java

利用AsyncTask 类将导入通讯录信息在后台运行;

 

 

                                                                                                                fmoonstar 更新至2012.7.29


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值