1,通訊錄訪問介紹
通訊錄是乙個資料庫,又叫位址簿、**簿,裡面儲存了聯絡人的相關資訊。要實現訪問通訊錄有如下兩種方式:
(1)addressbook.framework框架 : 沒有介面,通過**來獲取所有聯絡人資訊
(2)addressbookui.framework框架 : 通過系統提供的通訊錄互動介面來訪問
2,聯絡人記錄的屬性
在一條聯絡人記錄中,有很多屬性,而這些屬性又分為單值屬性和多值屬性。
(1)單值屬性是只有乙個值的屬性:
kabpersonlastnameproperty :姓
kabpersonfirstnameproperty :名
kabpersonmiddlenameproperty :中間名
kabpersonprefixproperty :字首
kabpersonsuffixproperty :字尾
kabpersonlastnamephoneticproperty :姓氏漢語拼音或音標
kabpersonfirstnamephoneticproperty :名字漢語拼音或音標
kabpersonnicknameproperty :暱稱
kabpersonorganizationproperty :公司(組織)
kabpersonjobtitleproperty :職位
kabpersondepartmentproperty :部門
kabpersonnoteproperty :備註
(2)多值屬性是包含多個值的集合型別:
kabpersonphoneproperty :**
kabpersonemailproperty :email
kabpersonaddressproperty :位址
kabpersonurlproperty : url屬性
kabpersondateproperty :紀念日
kabpersoninstantmessageproperty :獲取即時通訊(im)
kabpersonsocialprofileproperty :社交賬號
kabpersonrelatednamesproperty :親屬關係人
3,多值屬性標籤的本地名稱
在多值屬性中包含了label(標籤)、value(值)和id等部分,其中標籤和值都是可以重複的,而id是不能重複的。
對於標籤,我們可以使用abaddressbookcopylocalizedlabel()方法轉為本地標籤名(即能看得懂的標籤名,比如work、home)。要不然列印出來的是
!me>
! ,
!rk>
! 這樣的資料。
4,下面樣例使用**遍歷所有的聯絡人,並列印輸出相關屬性
import uikit
import addressbook
import addressbookui
class viewcontroller: uiviewcontroller
else })}
else
if (sysaddressbookstatus == abauthorizationstatus.denied || sysaddressbookstatus == abauthorizationstatus.restricted)
else
if (sysaddressbookstatus == abauthorizationstatus.authorized)
}//獲取並遍歷所有聯絡人記錄
func readrecords()}}
}//獲取email
let emailvalues:abmutablemultivalueref? = abrecordcopyvalue(contact, kabpersonemailproperty).takeretainedvalue()
if emailvalues != nil }}
//獲取位址
let addressvalues:abmutablemultivalueref? = abrecordcopyvalue(contact, kabpersonaddressproperty).takeretainedvalue()
if addressvalues != nil
}//獲取紀念日
let datevalues:abmutablemultivalueref? = abrecordcopyvalue(contact, kabpersondateproperty).takeretainedvalue()
if datevalues != nil
}//獲取即時通訊(im)
let imvalues:abmutablemultivalueref? = abrecordcopyvalue(contact, kabpersoninstantmessageproperty).takeretainedvalue()
if imvalues != nil }}
}}
override func didreceivememorywarning()
}
讀取通訊錄資訊
void readallpeoples 取得本地通訊錄名柄 abaddressbookref tmpaddressbook nil if uidevicecurrentdevice systemversionfloatvalue 6.0 tmpaddressbook abaddressbookcre...
ContentProvider讀取通訊錄和聯絡歷史
通過使用contentresolver讀取系統發布好的通訊錄相關的資料庫內容,並可以將裡面的資料取得,列表顯示。public class mainactivity extends activity null 隨意記錄乙個 一邊撥叫,這裡記錄迴圈中的最後乙個 string number c2.move...
Android讀取通訊錄資料
第一步,配置許可權 如果需要儲存,還需要儲存許可權 第二步,編寫聯絡人獲取工具類contractsutil public class contractsutil 根據uri查詢相應的contentprovider,cursor為獲取到的資料集 cursor cursor context.getcon...