一種基于android系統(tǒng)的快速查找聯(lián)系人的方法
【專利摘要】一種基于android系統(tǒng)的快速查找聯(lián)系人的方法,包括:數(shù)據(jù)準(zhǔn)備,具體包括如下步驟:構(gòu)建緩存數(shù)據(jù)結(jié)構(gòu);從數(shù)據(jù)庫獲取聯(lián)系人和聯(lián)系電話,存入緩存,作為后續(xù)處理的原始數(shù)據(jù);把拼音和字母轉(zhuǎn)換為T9數(shù)據(jù);還包括:智能匹配;排序:根據(jù)用戶對(duì)拼首、全拼和電話匹配結(jié)果的感興趣程度,自定義優(yōu)先順序,系統(tǒng)對(duì)不同的內(nèi)容給予一個(gè)基值;同步聯(lián)系人:執(zhí)行對(duì)緩存中的聯(lián)系人數(shù)據(jù)表采取局部同步更新。本發(fā)明很好地改善了撥號(hào)時(shí)的快速查找聯(lián)系人,匹配電話號(hào)碼的效率和效果,很大幅度地提升用戶的撥號(hào)體驗(yàn)。
【專利說明】—種基于android系統(tǒng)的快速查找聯(lián)系人的方法
【【技術(shù)領(lǐng)域】】
[0001]本發(fā)明屬于移動(dòng)終端軟件【技術(shù)領(lǐng)域】,具體是指一種基于android系統(tǒng)的快速查找聯(lián)系人的方法。
【【背景技術(shù)】】
[0002]在智能手機(jī)和PDA等移動(dòng)設(shè)備的使用中保存了聯(lián)系人列表,并通過聯(lián)系人內(nèi)容,包括姓名、各種電話號(hào)碼等獲取聯(lián)系人的聯(lián)系方式,這些聯(lián)系方式多是中文字符、字母和數(shù)字的組合。通常與人聯(lián)系時(shí),會(huì)提前預(yù)置對(duì)方的聯(lián)系方式,這種聯(lián)系方式是對(duì)發(fā)起方來說是最熟悉的,因此從各種聯(lián)系方式中搜尋匹配的信息,篩選到少量的聯(lián)系人,再?gòu)闹暗慕Y(jié)果中繼續(xù)篩選,從而找到該聯(lián)系人。
[0003]目前的技術(shù)實(shí)現(xiàn)如下:一、輸入中文字符,匹配系統(tǒng)中存儲(chǔ)的聯(lián)系人姓名;輸入數(shù)字,匹配系統(tǒng)中的電話號(hào)碼等數(shù)字內(nèi)容。二、用T9數(shù)字鍵盤匹配中文,匹配過程使用相對(duì)部分匹配,要求匹配部分連續(xù)。三、用漢字的拼音首字母模糊匹配查找聯(lián)系人。[0004]上述實(shí)現(xiàn)方法中存在各自的局限性。方法一,輸入中文字符與輸入字母、數(shù)字等切換界面,過濾時(shí)需要分別匹配。方法二,匹配過程只能連續(xù)匹配,要求用戶在輸入時(shí)必須準(zhǔn)確記憶已經(jīng)輸入的查詢條件后續(xù)的字符,否則匹配落空。方法三,要求用戶輸入查詢條件時(shí),對(duì)拼音的首字母記憶得越多將越能匹配成功。但這些方法還不足以滿足快速查找,實(shí)現(xiàn)智能撥號(hào)。
[0005]現(xiàn)有實(shí)現(xiàn)方法各自有不同的缺陷,要么要求中文、字母、數(shù)字、包括通過T9數(shù)字轉(zhuǎn)換后的中文,匹配過程中要求相對(duì)部分連續(xù),或者中文的拼音首字母連續(xù)才能夠匹配,而一旦中間字母不能滿足連續(xù)的要求,將導(dǎo)致匹配目標(biāo)丟失,只能重新輸入。這樣的匹配方式要求用戶對(duì)中文拼音絕對(duì)掌握、效率較低。要么只能從聯(lián)系人中查找,如果直接撥號(hào),還需要二次查詢,獲取該聯(lián)系人的具體的聯(lián)系方式。使用數(shù)據(jù)庫API查找的方式,每接受一次用戶的輸入,都執(zhí)行一次查詢。隨著聯(lián)系人數(shù)量增加,匹配速度將明顯減慢。在獲取聯(lián)系人姓名的拼音時(shí),一般采用漢字轉(zhuǎn)拼音的庫來完成,在聯(lián)系人數(shù)量上千條以后,轉(zhuǎn)換過程不僅速度慢,而且對(duì)終端設(shè)備的性能要求很高。
[0006]有鑒于此,本發(fā)明人針對(duì)現(xiàn)有技術(shù)的缺陷深入研究,遂有本案產(chǎn)生。
【
【發(fā)明內(nèi)容】
】
[0007]本發(fā)明所要解決的技術(shù)問題在于提供一種基于android系統(tǒng)的快速查找聯(lián)系人的方法。
[0008]本發(fā)明是這樣實(shí)現(xiàn)的:
[0009]一種基于android系統(tǒng)的快速查找聯(lián)系人的方法,包括如下步驟:
[0010]第一步驟:數(shù)據(jù)準(zhǔn)備,具體包括如下步驟:
[0011]步驟11:構(gòu)建緩存數(shù)據(jù)結(jié)構(gòu);根據(jù)匹配的需要,需要匹配的數(shù)據(jù)源先從數(shù)據(jù)庫讀入緩存,構(gòu)建特定的數(shù)據(jù)結(jié)構(gòu)體,該結(jié)構(gòu)體中包含拼音信息、拼首位置信息和根據(jù)T9轉(zhuǎn)換后的信息;
[0012]步驟12:從數(shù)據(jù)庫獲取聯(lián)系人和聯(lián)系電話,存入緩存,作為后續(xù)處理的原始數(shù)據(jù);應(yīng)用啟動(dòng)時(shí),從android聯(lián)系人數(shù)據(jù)庫獲取數(shù)據(jù),存儲(chǔ)在ContactItem和ContactPhone列表中;所述數(shù)據(jù)包括聯(lián)系人ID,顯示名,sort_key和lookup,電話數(shù)據(jù)包括lookup和多個(gè)聯(lián)系電話;
[0013]步驟13:把拼音和字母轉(zhuǎn)換為T9數(shù)據(jù):
[0014]android聯(lián)系人數(shù)據(jù)庫中,sort_key中包括了漢字的拼音信息,根據(jù)這個(gè)內(nèi)容獲取到姓名的全拼,再通過字段截取,可以獲取拼音首字母、每個(gè)單詞和各自所在的位置,通過解析android聯(lián)系人數(shù)據(jù)庫的數(shù)據(jù),直接獲取漢字的拼音,使用android聯(lián)系人數(shù)據(jù)庫的sort_key的形成特點(diǎn),執(zhí)行解析,在解析時(shí),采用從sort_key的末端開始,在解析過程中同時(shí)獲取到位置信息、實(shí)行T9轉(zhuǎn)換;
[0015]第二步驟:智能匹配:
[0016]在系統(tǒng)啟動(dòng)完成后,完成以上數(shù)據(jù)的準(zhǔn)備工作;系統(tǒng)在循環(huán)查找聯(lián)系人數(shù)據(jù)庫表的過程中,當(dāng)一個(gè)聯(lián)系人數(shù)據(jù)匹配結(jié)束后,存在聯(lián)系人拼音、拼首、電話號(hào)碼,或是因?yàn)槎嘁糇衷蛴辛硕鄠€(gè)匹配的結(jié)果,但是在設(shè)定的排序上各有先后,因此在匹配成功后需要比較獲取最優(yōu)順序,來確定最終呈現(xiàn)的匹配結(jié)果;
[0017]匹配某個(gè)聯(lián)系人的所有T9信息和電話號(hào)碼的過程是智能匹配的核心部分,這部分設(shè)計(jì)采用分治法,并默認(rèn)按照拼首、全拼和電話號(hào)碼的優(yōu)先順序設(shè)定各自優(yōu)先順序的基值,這種順序基值是可以按需要設(shè)定的;
[0018]第三步驟:排序:
[0019]根據(jù)用戶對(duì)拼首、全拼和電話匹配結(jié)果的感興趣程度,自定義優(yōu)先順序,系統(tǒng)對(duì)不同的內(nèi)容給予一個(gè)基值;
[0020]第四步驟:同步聯(lián)系人:
[0021]在android系統(tǒng)中,聯(lián)系人數(shù)據(jù)庫對(duì)每個(gè)聯(lián)系人維持了一個(gè)版本號(hào),當(dāng)聯(lián)系人數(shù)據(jù)更新時(shí),該聯(lián)系人的版本號(hào)升級(jí),采用監(jiān)聽聯(lián)系人修改,通過聯(lián)系人的lookup值關(guān)聯(lián),比較緩存中的版本,從而執(zhí)行對(duì)緩存中的聯(lián)系人數(shù)據(jù)表采取局部同步更新。
[0022]所述步驟13中,考慮到中文中的多音字,把多音字形成一個(gè)字符串,通過比較可以快速得知是否多音字,如果是,再?gòu)亩嘁糇謳熘蝎@取拼音,如果一個(gè)顯示名中有多個(gè)多音字字符,將形成多個(gè)拼音信息存儲(chǔ)在聯(lián)系人表SmartItem的拼音信息中,并打上多音字的
T 己 O
[0023]所述第二步驟中,對(duì)輸入是中文的、或字母的查詢條件進(jìn)行匹配,在接受參數(shù)后,匹配之前對(duì)輸入條件進(jìn)行T9轉(zhuǎn)換,并存儲(chǔ),在匹配過程中,分別用輸入條件的拼首匹配聯(lián)系人數(shù)據(jù)中的拼首,用輸入條件的全拼匹配聯(lián)系人數(shù)據(jù)中的全拼,用漢字匹配聯(lián)系人數(shù)據(jù)中顯示名。
[0024]本發(fā)明的優(yōu)點(diǎn)在于:根據(jù)用戶輸入查詢條件,通過匹配被存儲(chǔ)在存儲(chǔ)設(shè)備上的所有聯(lián)系方式的任意位置的字符,可以快速、簡(jiǎn)單地找到聯(lián)系方式。在使用本方法時(shí),系統(tǒng)提供T9軟鍵盤和輸入框,用戶在輸入框中輸入查詢條件,系統(tǒng)根據(jù)查詢條件與字母、數(shù)字、姓名拼音、中文等內(nèi)容中匹配,很快,包含該查詢條件的匹配結(jié)果呈現(xiàn)在一個(gè)容器中,譬如下拉框或者表格;用戶繼續(xù)輸入,容器快速呈現(xiàn)進(jìn)一步的匹配結(jié)果,并且高亮顯示查詢條件的字符。很好地改善了撥號(hào)時(shí)的快速查找聯(lián)系人,匹配電話號(hào)碼的效率和效果,很大幅度地提升用戶的撥號(hào)體驗(yàn)。
【【專利附圖】
【附圖說明】】
[0025]下面參照附圖結(jié)合實(shí)施例對(duì)本發(fā)明作進(jìn)一步的描述。
[0026]圖1是本發(fā)明中把拼音和字母轉(zhuǎn)換為T9數(shù)據(jù)的總體過程示意圖。
[0027]圖2是本發(fā)明中根據(jù)sort_key生成各種信息的過程圖。
[0028]圖3是本發(fā)明中智能匹配流程示意圖。
[0029]圖4是本發(fā)明中模糊匹配流程示意圖。
【【具體實(shí)施方式】】
[0030]本發(fā)明提供一種方法,用于根據(jù)用戶輸入查詢條件,通過匹配被存儲(chǔ)在存儲(chǔ)設(shè)備上的所有聯(lián)系方式的任意位置的字符,可以快速、簡(jiǎn)單地找到聯(lián)系方式。在使用本方法時(shí),系統(tǒng)提供T9軟鍵盤和輸入框,用戶在輸入框中輸入查詢條件,系統(tǒng)根據(jù)查詢條件與字母、數(shù)字、姓名拼音、中文等內(nèi)容中匹配,很快,包含該查詢條件的匹配結(jié)果呈現(xiàn)在一個(gè)容器中,譬如下拉框或者表格;用戶繼續(xù)輸入,容器快速呈現(xiàn)進(jìn)一步的匹配結(jié)果,并且高亮顯示查詢條件的字符。
[0031]整個(gè)算法可以主要包括4個(gè)步驟:數(shù)據(jù)準(zhǔn)備、快速匹配、排序、聯(lián)系人同步。
[0032]第一步驟:數(shù)據(jù)準(zhǔn)備。
[0033]數(shù)據(jù)準(zhǔn)備是智能匹 配的前提。準(zhǔn)備工作包括以下幾個(gè)部分:
[0034]1、構(gòu)建緩存數(shù)據(jù)結(jié)構(gòu)。根據(jù)匹配的需要,需要匹配的數(shù)據(jù)源先從數(shù)據(jù)庫讀入緩存,如聯(lián)系人姓名、sort_Key、聯(lián)系電話。構(gòu)建特定的數(shù)據(jù)結(jié)構(gòu)體,該結(jié)構(gòu)體中包含豐富的拼音信息、拼首位置信息和根據(jù)T9轉(zhuǎn)換后的信息。
[0035]
【權(quán)利要求】
1.一種基于android系統(tǒng)的快速查找聯(lián)系人的方法,其特征在于:包括如下步驟: 第一步驟:數(shù)據(jù)準(zhǔn)備,具體包括如下步驟: 步驟11:構(gòu)建緩存數(shù)據(jù)結(jié)構(gòu);根據(jù)匹配的需要,需要匹配的數(shù)據(jù)源先從數(shù)據(jù)庫讀入緩存,構(gòu)建特定的數(shù)據(jù)結(jié)構(gòu)體,該結(jié)構(gòu)體中包含拼音信息、拼首位置信息和根據(jù)T9轉(zhuǎn)換后的信息; 步驟12:從數(shù)據(jù)庫獲取聯(lián)系人和聯(lián)系電話,存入緩存,作為后續(xù)處理的原始數(shù)據(jù);應(yīng)用啟動(dòng)時(shí),從android聯(lián)系人數(shù)據(jù)庫獲取數(shù)據(jù),存儲(chǔ)在ContactItem和ContactPhone列表中;所述數(shù)據(jù)包括聯(lián)系人ID,顯示名,sort_key和lookup,電話數(shù)據(jù)包括lookup和多個(gè)聯(lián)系電話; 步驟13:把拼音和字母轉(zhuǎn)換為T9數(shù)據(jù): android聯(lián)系人數(shù)據(jù)庫中,sort_key中包括了漢字的拼音信息,根據(jù)這個(gè)內(nèi)容獲取到姓名的全拼,再通過字段截取,可以獲取拼音首字母、每個(gè)單詞和各自所在的位置,通過解析android聯(lián)系人數(shù)據(jù)庫的數(shù)據(jù),直接獲取漢字的拼音,使用android聯(lián)系人數(shù)據(jù)庫的sort_key的形成特點(diǎn),執(zhí)行解析,在解析時(shí),采用從sort_key的末端開始,在解析過程中同時(shí)獲取到位置信息、實(shí)行T9轉(zhuǎn)換; 第二步驟:智能匹配: 在系統(tǒng)啟動(dòng)完成后,完成以上數(shù)據(jù)的準(zhǔn)備工作;系統(tǒng)在循環(huán)查找聯(lián)系人數(shù)據(jù)庫表的過程中,當(dāng)一個(gè)聯(lián)系人數(shù)據(jù)匹配結(jié)束后,存在聯(lián)系人拼音、拼首、電話號(hào)碼,或是因?yàn)槎嘁糇衷蛴辛硕鄠€(gè)匹配的結(jié)果,但是在設(shè)定的排序上各有先后,因此在匹配成功后需要比較獲取最優(yōu)順序,來確定最終呈現(xiàn)的匹配結(jié)果; 匹配某個(gè)聯(lián)系人的所有T9信息和電話號(hào)碼的過程是智能匹配的核心部分,這部分設(shè)計(jì)采用分治法,并默認(rèn)按照拼首、全拼和電話號(hào)碼的優(yōu)先順序設(shè)定各自優(yōu)先順序的基值,這種順序基值是可以按需要設(shè)定的; 第三步驟:排序: 根據(jù)用戶對(duì)拼首、全拼和電話匹配結(jié)果的感興趣程度,自定義優(yōu)先順序,系統(tǒng)對(duì)不同的內(nèi)容給予一個(gè)基值; 第四步驟:同步聯(lián)系人: 在android系統(tǒng)中,聯(lián)系人數(shù)據(jù)庫對(duì)每個(gè)聯(lián)系人維持了一個(gè)版本號(hào),當(dāng)聯(lián)系人數(shù)據(jù)更新時(shí),該聯(lián)系人的版本號(hào)升級(jí),采用監(jiān)聽聯(lián)系人修改,通過聯(lián)系人的lookup值關(guān)聯(lián),比較緩存中的版本,從而執(zhí)行對(duì)緩存中的聯(lián)系人數(shù)據(jù)表采取局部同步更新。
2.如權(quán)利要求1所述的一種基于android系統(tǒng)的快速查找聯(lián)系人的方法,其特征在于: 所述步驟13中,考慮到中文中的多音字,把多音字形成一個(gè)字符串,通過比較可以快速得知是否多音字,如果是,再?gòu)亩嘁糇謳熘蝎@取拼音,如果一個(gè)顯示名中有多個(gè)多音字字符,將形成多個(gè)拼音信息存儲(chǔ)在聯(lián)系人表SmartItem的拼音信息中,并打上多音字的標(biāo)記。
3.如權(quán)利要求1所述的一種基于android系統(tǒng)的快速查找聯(lián)系人的方法,其特征在于: 所述第二步驟中,對(duì)輸入是中文的、或字母的查詢條件進(jìn)行匹配,在接受參數(shù)后,匹配之前對(duì)輸入條件進(jìn)行T9轉(zhuǎn)換,并存儲(chǔ),在匹配過程中,分別用輸入條件的拼首匹配聯(lián)系人數(shù)據(jù)中的拼首,用輸入條件的全拼匹配聯(lián)系人數(shù)據(jù)中的全拼,用漢字匹配聯(lián)系人數(shù)據(jù)中顯示 名。
【文檔編號(hào)】H04M1/725GK103617204SQ201310574534
【公開日】2014年3月5日 申請(qǐng)日期:2013年11月15日 優(yōu)先權(quán)日:2013年11月15日
【發(fā)明者】倪海鷗, 陳嗣文, 許波 申請(qǐng)人:福建星網(wǎng)銳捷通訊股份有限公司