1. 安卓手機輸入名字拼音和聯系人關聯不上了
通過手機授權即可。
需要先點擊桌面圖標進入設置。點擊詞庫管理。點擊通訊錄詞庫。點擊同步通訊錄詞庫。導入完成,可以快捷錄入聯系人姓名了。可以勾選自動同步,以後每添加一個聯系人就會自動把他的名字同步到詞庫里,很方便。
通訊錄一般指在日常生活中用筆記錄,也在手機,電腦,電子字典等電子產品中擁有這個功能。通訊錄作為通訊錄地址的書本,當今的通訊錄可以涵蓋多項內容。
2. 怎麼把安卓手機通訊錄轉到蘋果手機上
工具/原料:華為暢享9s手機,蘋果6s手機,手機qq同步助手。
1、首先在安卓手機桌面上找到QQ同步助手並點擊它。
3. 安卓手機系統語言設置成英文之後,通訊錄裡面就無法安裝字母查找了 這是為什麼
安卓手機系統語言設置成英文之後,通訊錄裡面就無法按照字母查找了的原因是有二:
第一,按照字母查找遵循的是漢語拼音的拼寫規則,而英文系統下的通訊錄,遵循的是英語語法的拼寫規則。
例如,中文胡天龍,漢語拼音是hu tianlong,變成英文後,系統內出現的漢字是亂碼,根本無從查找。
第二,某些安卓系統手機的操作系統版本偏低,語言設置變成英文後,不再支持按照字母查找的功能。5.0以上的安卓操作系統(國內銷售手機),即使從語言設置變成了中文,也是可以繼續使用按字母查找功能的(實測機型為紅米Note2)。
4. android 1.5平台通訊錄如何實現按拼音定位中文姓名拼音定位字元串放在哪個資料庫欄位中可以實現拼音排序
資料庫是你自己設計的 我怎麼知道放那個欄位中??
5. android在聯系人列表界面怎樣實現中文聯系人搜索功能
在安卓系統中的聯系人列表上方,有一個搜索框,輸入你想要查詢的中文聯系人名稱,就可以實現中文搜索功能。若只能搜索英文,可能是你的默認輸入法是英文,需要手動更改為中文輸入。換句話說,你輸入的是英文,則搜索英文,輸入中文,則可以實現搜索中文。
6. android通訊錄欄位sort_key_primary要多出一個"z"怎麼去掉啊。
view plain to clipboardprint?
if (displayNameStyle == FullNameStyle.CHINESE ||
displayNameStyle == FullNameStyle.CJK) {
sortKeyPrimary = sortKeyAlternative =
ContactLocaleUtils.getIntanc).getSortKe(displayNamePrimary, displayNameStyle);}
if (displayNameStyle == FullNameStyle.CHINESE || displayNameStyle == FullNameStyle.CJK) { sortKeyPrimary = sortKeyAlternative = ContactLocaleUtils.getIntanc).getSortKe(displayNamePrimary, displayNameStyle);}
這段代碼是運行在contactsprovi2.java的updateRawContactDisplayName()方法裡面,這段代碼我們用到了ContactLocaleUtils.java這個類,所以我們進入它以後最顯眼的就是ChineseContactUtils這個ContactLocaleUtils的子類,它重寫了ContactLocaleUtils的getSortKey()方法,如下:
view plain to clipboardprint?
public String getSortKey(String displayName) {
7. 我的三星1899,用的搜狗android_1.6.1手機輸入法,想問一下怎麼使用通訊錄詞庫啊
你進入搜狗輸入法的設置程序,在「詞庫管理」中選擇「導入通訊簿詞庫」,導入成功後重新進入輸入界面,就能直接輸入通信錄人名詞語了。輸入通信錄中的中文人名拼音,人名即可作為候選詞條出現。
長按人名候選詞,可彈出列表選項,點擊可以選擇插入人名對應的電話和郵箱。
這功能還是蠻好用的
8. Android手機通訊錄備份或同步後多音字為何總是恢復默認,而其經常是恢復到不常用的發音。如少尉(yu)
下載個QQ軟體的 同步助手吧啊 不錯
9. android聯系人排序用了什麼演算法
今天用了整整一下午去搗鼓這塊,為什麼模擬器上可以按拼音排序,中英文混排,及按字母搜索聯系人,但到了開發板(平台是根據android2.2改過的)上就怎麼不行了呢,雖然現在還沒有解決,但也是知道了問題所在,離解決之路也就不遠了
好吧,現在就解釋下android2.2是怎麼按拼音排序的。
首先我們來看下android.2自帶通訊錄的資料庫文件contacts2.db的raw_contacts表。用sqlitedbviewer工具打開後可以看到有這么一個欄位:sort_key(sort_key_alt與之相似,只不過是英文環境下有個按given name還是first name排序的問題)。
正常狀況下,我們新建一個聯系人的話,如果是英文,則sort_key與display_name欄位顯示相同,如果輸入姓名是中文,如「你好」,sort_key則會顯示「ni 你 hao 好」,這樣開發者既可以根據此欄位按拼音排序,中英文混排,以及按拼音搜索聯系人拉。
現在就說下,android是如何將中文名的聯系人轉化為拼音存到sort_key裡面的:
view plain to clipboardprint?
if (displayNameStyle == FullNameStyle.CHINESE ||
displayNameStyle == FullNameStyle.CJK) {
sortKeyPrimary = sortKeyAlternative =
ContactLocaleUtils.getIntanc).getSortKe(displayNamePrimary, displayNameStyle);}
if (displayNameStyle == FullNameStyle.CHINESE ||
displayNameStyle == FullNameStyle.CJK) { sortKeyPrimary =
sortKeyAlternative =
ContactLocaleUtils.getIntanc).getSortKe(displayNamePrimary,
displayNameStyle);}
這段代碼是運行在contactsprovi2.Java的updateRawContactDisplayName()方法裡面,這段代碼我們用到了ContactLocaleUtils.java這個類,所以我們進入它以後最顯眼的就是ChineseContactUtils這個ContactLocaleUtils的子類,它重寫了ContactLocaleUtils的getSortKey()方法,如下:
view plain to clipboardprint?
public String getSortKey(String displayName) {
ArrayList tokens = HanziToPinyin.getInstance().get(displayName);
if (tokens != null && tokens.size() > 0) {
StringBuilder sb = new StringBuilder();
for (Token token : tokens) {
// Put Chinese character's pinyin, then proceed with the
// character itself.
if (Token.PINYIN == token.type) {
if (sb.length() > 0) {
sb.append(' ');
}
sb.append(token.target);
sb.append(' ');
sb.append(token.source);
} else {
if (sb.length() > 0) {
sb.append(' ');
}
sb.append(token.source);
}
}
return sb.toString();
}
return super.getSortKey(displayName);
}
public
String getSortKey(String displayName) {
ArrayList tokens =
HanziToPinyin.getInstance().get(displayName); if (tokens !=
null && tokens.size() > 0) { StringBuilder
sb = new StringBuilder(); for (Token token : tokens) {
// Put Chinese character's pinyin, then proceed
with the // character itself.
if (Token.PINYIN == token.type) { if
(sb.length() > 0) { sb.append(' ');
} sb.append(token.target);
sb.append(' ');
sb.append(token.source); } else {
if (sb.length() > 0) {
sb.append(' '); }
sb.append(token.source); } }
return sb.toString(); } return
super.getSortKey(displayName); }
首先我們看 ArrayList tokens = HanziToPinyin.getInstance().get(displayName);,因為其他的無非就是插入格式的問題,我們暫時不用看。
android如何將漢字轉為拼音的?這就用到了HanziToPinyin這個類,好吧,我們先看下HanziToPinyin的getInstance()方法:
view plain to clipboardprint?
public static HanziToPinyin getInstance() {
synchronized(HanziToPinyin.class) {
if (sInstance != null) {
return sInstance;
}
// Check if zh_CN collation data is available
final Locale locale[] = Collator.getAvailableLocales();
for (int i = 0; i < locale.length; i++) {
if (locale[i].equals(Locale.CHINA)) {
sInstance = new HanziToPinyin(true);
return sInstance;
}
}
Log.w(TAG, "There is no Chinese collator, HanziToPinyin is disabled");
sInstance = new HanziToPinyin(false);
return sInstance;
}
}
public static HanziToPinyin getInstance() {
synchronized(HanziToPinyin.class) { if (sInstance != null) {
return sInstance; } // Check
if zh_CN collation data is available final Locale locale[]
= Collator.getAvailableLocales(); for (int i = 0; i <
locale.length; i++) { if
(locale[i].equals(Locale.CHINA)) { sInstance = new
HanziToPinyin(true); return sInstance;
} } Log.w(TAG, "There is no Chinese
collator, HanziToPinyin is disabled"); sInstance = new
HanziToPinyin(false); return sInstance; } }
現在說下我的開發板為什麼不能轉拼音;就是因為final Locale locale[] = Collator.getAvailableLocales()的Locale沒有一項equals(Locale.CHINA),所以到時候解決了這項,聯系人的按拼音排序也就解決了,如果大家不想用系統自帶的,自己可以下載個pinyin4j.jar包自己實現吧。
好吧,繼續:
看方法名也只到,這個方法返回一個HanziToPinyin實例,我仔細研究了HanziToPinyin的構造方法,無論純如的布爾值是false還是true都不影響,返回的都一樣,只不過這個方法的Log.w(TAG, "There is no Chinese collator, HanziToPinyin is disabled");可以提示是否支持漢字轉拼音,如果不能,android就會將displayname原封不動的插入sort_key裡面,如果能,就是剛才我說的 如「你好」,sort_key則會顯示「ni 你 hao 好」,這種形式,具體的如何轉拼音就是get()方法拉,直接插代碼:
view plain to clipboardprint?
public ArrayList get(final String input) {
ArrayList tokens = new ArrayList();
if (!mHasChinaCollator || TextUtils.isEmpty(input)) {
// return empty tokens.
return tokens;
}
final int inputLength = input.length();
final StringBuilder sb = new StringBuilder();
int tokenType = Token.LATIN;
// Go through the input, create a new token when
// a. Token type changed
// b. Get the Pinyin of current charater.
// c. current character is space.
for (int i = 0; i < inputLength; i++) {
final char character = input.charAt(i);
if (character == ' ') {
if (sb.length() > 0) {
addToken(sb, tokens, tokenType);
}
} else if (character < 256) {
if (tokenType != Token.LATIN && sb.length() > 0) {
addToken(sb, tokens, tokenType);
}
tokenType = Token.LATIN;
sb.append(character);
} else if (character < FIRST_UNIHAN) {
if (tokenType != Token.UNKNOWN && sb.length() > 0) {
addToken(sb, tokens, tokenType);
}
tokenType = Token.UNKNOWN;
sb.append(character);
} else {
Token t = getToken(character);
if (t.type == Token.PINYIN) {
if (sb.length() > 0) {
addToken(sb, tokens, tokenType);
}
tokens.add(t);
tokenType = Token.PINYIN;
} else {
if (tokenType != t.type && sb.length() > 0) {
addToken(sb, tokens, tokenType);
}
tokenType = t.type;
sb.append(character);
}
}
}
if (sb.length() > 0) {
addToken(sb, tokens, tokenType);
}
return tokens;
}