ContentObserver для прослушивания изменений контактов

Я действительно не понимаю, почему контент-наблюдатель слушает изменения, не связанные с контактной информацией.

Я просто зарегистрировался в URI, который я хочу прослушать изменения:

getContentResolver().registerContentObserver(ContactsContract.CommonDataKinds.Phone.CONTENT_URI, true, contactsObserver); 

Но, позвонив кому-либо или кому-то кому-то, он запускает и вызывает методChange в ContentObserver. Поэтому мне нужно повторно синхронизировать весь список контактов с моим приложением, хотя мне не нужно это делать.

Меня интересует только поле:

  • ContactsContract.CommonDataKinds.Phone.CONTACT_ID
  • ContactsContract.CommonDataKinds.Phone.DISPLAY_NAME
  • ContactsContract.CommonDataKinds.Phone.NUMBER

Какие изменения я должен выполнить для прослушивания изменений для этих элементов БД?

Solutions Collecting From Web of "ContentObserver для прослушивания изменений контактов"

База данных контактов имеет поле ContactsContract.Contacts.TIMES_CONTACTED Это поле обновляется каждый раз, когда вы связываетесь с кем-либо из вашего списка контактов.

Можно даже обновить это поле с помощью собственного приложения, а это значит, что если вы обратитесь к любому контакту с помощью приложения, которое обновляет это поле, onChange() метод onChange() .