получить удаленные контакты из ContactsContract.RawContacts.CONTENT_URI

avatar
user2189714
8 апреля 2018 в 11:20
411
1
0

Этот запрос некоторое время возвращает удаленные контакты. Я заметил, что если удаленные контакты принадлежат учетной записи Gmail и имеют номера, то этот запрос не даст никакого результата.

String WHERE_DELETED = "( " + ContactsContract.RawContacts.DELETED + "=1)";

Cursor cursor = context.getContentResolver().query(ContactsContract.RawContacts.CONTENT_URI,
                null,
                WHERE_DELETED,
                null,
                null);
Источник

Ответы (1)

avatar
marmor
10 апреля 2018 в 13:59
1

RawContact.DELETED отмечает RawContact для удаления, как только соответствующий SyncAdapter просыпается и синхронизирует удаление с сервером (например, с сервера Google Contacts94563), который375 БД и больше не могут быть запрошены.

См. официальную документацию:

Флаг "удалено": "0" по умолчанию, "1", если строка помечена для удаление. Когда delete(Uri, String, String[]) вызывается для необработанного контакт, он помечается на удаление и удаляется из его совокупности контакт. Адаптер синхронизации удаляет необработанный контакт на сервере и затем снова вызывает ContactResolver.delete, на этот раз передавая Параметр запроса CALLER_IS_SYNCADAPTER для завершения удаления данных.

Что вы можете сделать, так это запросить таблицу ContactsContract.DeletedContacts, в которой содержится запись контактов, удаленных за последние 30 дней, см. здесь: https://developer.android.com/reference/android/provider/ContactsContract.DeletedContacts.html