此查询会在某个时间返回已删除的联系人。我注意到如果删除的联系人属于Gmail帐户并且有号码,那么此查询将不会返回任何结果。
String WHERE_DELETED = "( " + ContactsContract.RawContacts.DELETED + "=1)";
Cursor cursor = context.getContentResolver().query(ContactsContract.RawContacts.CONTENT_URI,
null,
WHERE_DELETED,
null,
null);
答案 0 :(得分:0)
RawContact.DELETED
标记要删除的RawContact
,一旦相关的SyncAdapter
醒来并将删除同步到服务器(例如Google通讯录服务器),实际上已从数据库中删除RawContact
,无法再查询 。
"删除" flag:" 0"默认情况下," 1"如果该行已标记为 删除。在raw上调用delete(Uri,String,String [])时 联系,它被标记为删除并从其聚合中删除 联系。同步适配器删除服务器上的原始联系人 然后再次调用ContactResolver.delete,这次通过了 CALLER_IS_SYNCADAPTER查询参数以完成数据删除。
你可以做的是查询ContactsContract.DeletedContacts
表,其中包含过去30天内删除的联系人记录,请参阅此处:
https://developer.android.com/reference/android/provider/ContactsContract.DeletedContacts.html