如何監聽系統聯絡人修改 android

2021-05-31 23:42:34 字數 690 閱讀 5962

谷歌聯絡人分了三部分:contacts、 rawcontacts、data

每次新增乙個contact之前都需要在rawcontact表中新增一條空白記錄,然後才能插入到contact表中,contact所有的資料屬性都儲存在data裡。

每次修改一條contact,對應rawcontact的屬性裡有乙個version欄位,修改完成後version+1,所以我們可以通過判斷比較version的大小來確定聯絡人是否被修改。 

對於新增和刪除的方法目前還沒想到比較好的,只能通過比較系統聯絡人是否在自己的資料庫裡存在來判斷是否新增;

對於刪除,rawcontact裡面有個deleted欄位,但是沒搞明白怎麼用的,所以目前還沒研究到好辦法~~ 

//查詢contact所有聯絡人

cursor cursor = getcontentresolver().query(  

contactscontract.contacts.content_uri, null,  

null, null, null);  

while (cursor.movetonext()) ,  

null);  

while (raws.movetonext())

if(contactidraws != null)

if(deleted != null)

}  raws.close(); 

ContactsUI 修改聯絡人

cncontactpickerviewcontroller required keys initializing view controllers displaying contact properties notifying delegate contact store customizing c...

讀取系統聯絡人

contentprovider讀取 號碼的uri contactscontract.commondatakinds.phone.content uri contentprovider掃瞄本地路徑uri mediastore.images.media.external content uri cont...

如何儲存聯絡人

這兩天專案有個需求,可以對事務操作人進行 新建聯絡人 儲存到已有聯絡人 編輯聯絡人 總結一下,日後備用。先看一下效果 一 新建聯絡人 主要是給系統發乙個intent public void addcontact startactivity intent setresult result first ...