2

Ich versuche, eine Kontaktdatenbank zu pflegen und einen Rückruf für Hinzufügen/Aktualisieren/Löschen, sobald sich etwas in der URI ändert.Erkennen, ob ein Android-Kontakt gelöscht wurde

Ich habe einen ContentObserver geschrieben zu beobachten auf ContactsContract.Contacts.CONTENT_URI auf Kontakte. Ich erhalte einen Rückruf, sobald sich ein Kontakt ändert, und aktualisiere dann meine Datenbank, indem ich ContactsContract.Contacts.CONTACT_LAST_UPDATED_TIMESTAMP überprüfe. Während dies funktioniert für hinzufügen/aktualisieren, tut es funktioniert nicht zum Löschen eines Kontakts.

Ich möchte nicht alle Kontakte analysieren, die ich im Speicher habe und gegen Android-Datenbank überprüfen. Das würde Zeit und CPU kosten.

Ich weiß, dass es viele Fragen dieser Typen gibt, aber ich bin nicht in der Lage, Dinge speziell zum Löschen des Kontakts herauszufinden.

Gibt es eine Möglichkeit, dies durchzuführen?

+0

Haben u irgendeine Lösung für sie gefunden, ich werde durch die gleiche – user3475052

+0

@ user3475052: android "ContactsContract.DeletedContacts.CONTENT_URI" für APIs 18 und höher zur Verfügung stellt. Sie können den Zeitstempel dieses Inhalts-Uri verwenden, um gelöschte Kontakte zu verfolgen. Dies ist viel schneller als die Verfolgung von Kontakten über Contacts.Content_uri. – ShReYaNsH

+0

hey shreyansh kannst du plz erklären ein bisschen mehr – user3475052

Antwort

0

Wie ich oben in Kommentar auch geschrieben habe, funktioniert der folgende Code für API-Ebene 18 und höher. Sie können auf einem uri ContactsContract.DeletedContacts.CONTENT_URI abfragen, um die Liste aller Kontakte zu erhalten, die gelöscht wurden.

Meine Abfrage sieht wie folgt aus:

String selection = ContactsContract.DeletedContacts.CONTACT_DELETED_TIMESTAMP + " > ?"; 
    String[] selectionArgs = new String[]{String.valueOf(mLastContactDeleteTime)}; 
    Cursor cursor = mContext.getContentResolver().query(ContactsContract.DeletedContacts.CONTENT_URI, null, selection, selectionArgs, null); 
Verwandte Themen