2

Я пытаюсь сохранить базу данных контактов и получить обратный вызов для добавления/обновления/удаления, как только что-то изменится в URI.Обнаружить, был ли удален контакт android

Я написал ContentObserver для наблюдения за ContactsContract.Contacts.CONTENT_URI на контактах. Я получаю обратный вызов, как только изменяется контакт, а затем я обновляю свою базу данных, установив ContactsContract.Contacts.CONTACT_LAST_UPDATED_TIMESTAMP. Хотя это нормально работает для добавления/обновления, не работает для удаления контакта.

Я не хочу разбирать все контакты, которые у меня есть в памяти, и проверять базу данных Android. Это потребует времени и процессора.

Я знаю, что существует много вопросов об этих типах, но я не могу понять, что конкретно связано с удалением контакта.

Есть ли способ выполнить это?

+0

Есть у найдено какое-либо решение для него, я иду через тот же – user3475052

+0

@ user3475052: Android обеспечивает «ContactsContract.DeletedContacts.CONTENT_URI» для API, 18 и выше. Вы можете использовать временную метку этого содержимого Uri для отслеживания удаленных контактов. Это намного быстрее, чем отслеживание контактов через Contacts.Content_uri. – ShReYaNsH

+0

эй шрейанш вы можете плз объяснить немного больше – user3475052

ответ

0

Как я уже опубликовал выше, следующий код работает для уровня API 18 и выше. Вы можете запросить ури ContactsContract.DeletedContacts.CONTENT_URI, чтобы получить список всех удаленных контактов.

Мой запрос выглядит следующим образом:

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);