簡體   English   中英

Android:聽取像WhatsApp這樣的聯系人更改

[英]Android: Listening to contact changes like WhatsApp do

我正在構建一個嚴重依賴用戶聯系人的應用程序。

我已經創建了一個Account並在需要時代表此帳戶創建RawContacts
我使用SyncAdapter ,事情很棒。

但我仍然錯過了這個難題的一些部分:

我正在嘗試實現類似於WhatsApp的行為。 這樣 -

當任何聯系人的姓名或電話發生變化時 - 它將被發送到服務器進行評估

此聯系人是否已經在“我的” RawContacts ,他是否剛剛由用戶創建。

我知道有ContentObserver但跟蹤ContactsContract.Contacts.CONTENT_URI似乎是錯誤的事情,因為它沒有給出具體的更改,加上它被提升到很多次,以及從許多不感興趣的事件。

我知道WhatsApp正在使用SyncAdapter,但我認為他們可能會做更多的事情。

任何想法將不勝感激。

ContentObserver跟蹤ContactsContract.Contacts.CONTENT_URI確實是要走的路。

當你使用onChange()時,你可以使用以下條件查詢raw_contacts表:

String where = "(rawcontacts.dirty = true or rawcontacts.deleted = 1) and rawcontacts.account_type = <your_custom_type>"

結果將為您添加,更新或刪除聯系人。

如果您有興趣了解更多詳細信息 - 您需要訂閱ContactsContract.Contacts.CONTENT_URI的原因是聯系人提供商目前不會通知onChange()中哪些聯系人被修改。 這是因為applyBatch()事務可能會更改多個聯系人。 可能在將來會有一種訂閱子集的方法 - 但目前沒有。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM