听取各个Android联系人的更改

时间:2014-06-27 11:43:15

标签: android android-contentprovider android-contacts contactscontract contentobserver

我有一个电话号码列表,我需要在android联系人数据库中与这些号码的联系人发生更改时收到通知。

到目前为止我尝试了什么:

第一种方法:注册contentobserver:

getContentResolver().registerContentObserver(
Uri.withAppendedPath(ContactsContract.Contacts.CONTENT_LOOKUP_URI, lookupKey), false,
mPresenceObserver);

,其中mPresenceObserver是ContentObserver。这样我就可以在观察者的“onChange”方法中获得更改通知,但是当数据库中的任何联系人发生更改时,它会发生,而不仅仅是我感兴趣的那些。此外,“onChange”中的URI看起来也是如此。像这样:“content://com.android.contacts”(所以它没有附加任何可以帮助我识别哪个联系人被更改的ID)。

第二种方法:查询数据库以检索我感兴趣的联系人,并在Cursor上设置ContentObserver。不幸的是,同样的事情发生在以前的方法中:当数据库发生 ANY 更改时,我会收到通知,而不是在对支持光标的数据发生更改时收到通知。

0 个答案:

没有答案