![](/img/trans.png)
[英]Unable to fetch deleted contacts from ContactsContract.Contacts.CONTENT_URI
[英]get deleted contacts from ContactsContract.RawContacts.CONTENT_URI
此查询会在一段时间后返回已删除的联系人。 我注意到,如果删除的联系人属于Gmail帐户并且有电话号码,那么此查询将不会返回任何结果。
String WHERE_DELETED = "( " + ContactsContract.RawContacts.DELETED + "=1)";
Cursor cursor = context.getContentResolver().query(ContactsContract.RawContacts.CONTENT_URI,
null,
WHERE_DELETED,
null,
null);
一旦相关的SyncAdapter
唤醒并将该删除同步到服务器(例如Google Contacts Server),该RawContact
实际上已从数据库中删除并且不再可以查询 ,则RawContact
将RawContact.DELETED
标记为删除。
请参阅官方文档 :
“已删除”标志:默认情况下为“ 0”,如果该行已标记为要删除,则为“ 1”。 在原始联系人上调用delete(Uri,String,String [])时,会将其标记为删除并从其汇总联系人中删除。 同步适配器删除服务器上的原始联系人,然后再次调用ContactResolver.delete,这一次传递CALLER_IS_SYNCADAPTER查询参数以完成数据删除。
您可以做的是查询ContactsContract.DeletedContacts
表,其中包含最近30天删除的联系人的记录,请参见此处: https : //developer.android.com/reference/android/provider/ContactsContract.DeletedContacts.html
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.