天天看點

[android研究聯系人之四]聯系人StructuredPostal/StructuredName資料操作

技術:android聯系人技術分析

知識點:分析聯系人中structuredpostal和structuredname資料

重點:資料類型

首先分析第一個字段:structuredpostal

它代表聯系人的位址資訊,如圖表示字段:

[android研究聯系人之四]聯系人StructuredPostal/StructuredName資料操作

先看看它有的類型吧:

[android研究聯系人之四]聯系人StructuredPostal/StructuredName資料操作

有四種資料類型。

看源碼中定義的四種類型:

還有種定義類型:type=0時,是自定義類型。它沒有單獨在字段中定義。

按下來分析,structuredpostal中重要的字段:

先從源碼中看起:

類型:structuredpostal.content_item_type

structuredpostal.formatted_address:對應data.data1

structuredpostal.type:對應data.data2:表示類型

structuredpostal.label:對應data.data3:表示自定義類型名稱

structuredpostal.street:對應data.data4:表示街道

structuredpostal.pobox:對應data.data5:表示郵箱

structuredpostal.neighborhood:對應data.data6:表示鎮(看英文解釋)

structuredpostal.city:對應data.data7:表示城市

structuredpostal.region:對應data.data8:表示區域(省級)

structuredpostal.postcode:對應data.data9:表示郵編

structuredpostal.country:對應data.data10:表示國家

最後會分析存入資料庫的值。

下面分析:structuredname

structuredname中主要儲存的是聯系人姓名,其稱呼名和其拼音名。

姓名的表示有以下兩種方式:

第一種:display_name

第二種:given_name+family_name

注:第一種和第二種應該是互斥的。有些手機支援第一種,有些則支援第二種。但必須支援其中的一種。

稱呼名,是指對人的稱呼。比如 mr hu。它隻有一個表示形式:prefix+middle_name+suffix

注:很多手機都不支援該項。

拼音名,是指漢語拼音的形式,或片假名的形式,或平假名的形式等。

它隻有一個表示形式:phonetic_given_name+phonetic_middle_name+phonetic_family_name

接下來看看模拟器中提供的姓名有多少吧:

先看圖:

[android研究聯系人之四]聯系人StructuredPostal/StructuredName資料操作
[android研究聯系人之四]聯系人StructuredPostal/StructuredName資料操作

國外人的姓名字段可真多啊,是以,要操作手機中的姓名,還是要非常的小心。不同的手機可能會有不一樣的。

接着看顯示的名字,在模拟器中是什麼?

[android研究聯系人之四]聯系人StructuredPostal/StructuredName資料操作

使用者名的顯示,就是上面提到的多個字段組合起來的。

android手機具體會使用哪種方式表示姓名,可能會一樣。但我們還是要看看系統源碼中提供了哪些重要的字段:

沒想到它會有這麼多字段吧。

接下來分析這些字段:

類型:structuredname.content_item_type

structuredname.display_name:對應data.data1:表示顯示的名字

structuredname.given_name:對應data.data2:表示名

structuredname.family_name:對應data.data3:表示family名(在國外表示父母的姓)

structuredname.prefix:對應data.data4:表示姓名前的稱呼,如sir(先生/女士)

structuredname.middle_name :對應data.data5:表示姓名中間的字

structuredname.suffix :對應data.data6:表示姓名敬語的字尾(不知道是什麼)

後面的幾個字段,都是語音相關設定的。

今天又折騰了挺晚了,晚上參加一個會議,和朋友喝了點酒,頭暈暈的。但還是要堅持,把自己整理的東西,分享給大家。一起學習進步吧!!

後面還有一個資料庫存入分析,快點來看看吧:

先看位址存入資料庫的字段:

[android研究聯系人之四]聯系人StructuredPostal/StructuredName資料操作

接下來看姓名字段資料:

[android研究聯系人之四]聯系人StructuredPostal/StructuredName資料操作

如果對聯系人操作,有問題的,可以結合源碼和操作資料庫的内容分析,就一定能很快的解決問題。

問題的難,就是思考時間太少。隻能多用心,花時間研究。總能解決問題。

做技術,不能太及,需要一步步穩。用事實說話。

好了,今天就介紹到這裡,如果對文章中有問題的地方,歡迎 一起交流。。隻有交流,才能更好的進步。

加油吧,朋友們!!!