2013-02-05 7 views
8

Ich verstehe wirklich nicht, warum Inhalt Beobachter die Änderungen abhört, die nicht mit den Kontaktinformationen verwandt ist.ContentObserver für Listening Kontaktänderungen

ich einfach an den URI registriert, die ich die Änderungen hören wollen:

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

Aber nachdem jemand oder SMS an jemanden anrufen, es löst und ruft onChange Methode in ContentObserver. Also muss ich die gesamte Kontaktliste mit meiner Anwendung synchronisieren, obwohl ich das nicht tun muss.

Nur Feld Ich interessiere mich für:

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

Welche Art von Änderungen sollte ich implementieren, um die Änderungen für diese DB-Elemente zu überwachen?

+0

habe keine Lösung, wenn ja, bitte führen Sie mich .. ich habe das gleiche Problem seit den letzten 1 Woche – user3475052

+0

@ user3475052 eine aktuelle Antwort kann Sie interessieren. – Boris

+0

Immer noch mit diesem Problem konfrontiert. – GensaGames

Antwort

0

Die Kontaktdatenbank hat ein Feld ContactsContract.Contacts.TIMES_CONTACTED Dieses Feld wird jedes Mal aktualisiert, wenn Sie jemanden in Ihrer Kontaktliste kontaktieren.

Es ist sogar möglich, dieses Feld mit Ihrer eigenen App zu aktualisieren, dh wenn Sie einen Kontakt mit einer App kontaktieren, die dieses Feld aktualisiert, wird Ihre onChange() Methode aufgerufen.

+0

Es gibt mehr Felder wie dieses, 'ContactsContract.ContactOptionsColumns.LAST_TIME_CONTACTED' zum Beispiel. –

+0

das ist eine sehr alte Frage, nicht sicher, ob OP immer noch wartet, aber vielleicht @ user3475052 interessiert sein wird? – Boris

Verwandte Themen