Android notify when phone book is updated(Content Observer)

旧时模样 提交于 2019-11-29 03:59:48

Observer does not provide the information that which contact is added/update/deleted. To get to know this save the contacts in your own DB table and when observer send the change notification check it with system's Contacts.

I have changed onChange code to this.

@Override
public void onChange (boolean selfChange)
{
    this.onChange(selfChange, null);
}

@Override
public void onChange (boolean selfChange,Uri uri)
{
  Cursor cursor = mCntxt.getContentResolver().query(
            ContactsContract.Contacts.CONTENT_URI, null, null, null,ContactsContract.Contacts.CONTACT_LAST_UPDATED_TIMESTAMP + " Desc");
    if (cursor.moveToNext()) {
        String id = cursor.getString(
                cursor.getColumnIndex(ContactsContract.Contacts._ID));
        String name = cursor.getString(
                cursor.getColumnIndex(ContactsContract.Contacts.DISPLAY_NAME));
        Log.w("Contact ID", id);
        Log.w("Person Name",name);
       }
}

Hope this helps..

I think it may be possible using a Broadcast manager / receiver http://www.intertech.com/Blog/using-localbroadcastmanager-in-service-to-activity-communications/

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!