繁体   English   中英

无法从 ContactsContract.Contacts.CONTENT_URI 获取已删除的联系人

[英]Unable to fetch deleted contacts from ContactsContract.Contacts.CONTENT_URI

我正在尝试从 android 联系人表中获取已删除的联系人。
在搜索了很多 so 链接后,获取已删除联系人的最佳方法是使用ContactsContract.DeletedContacts
我能够从 DeletedContacts 表中获取已删除的联系人。

val deletedContactsProjection = arrayOf(ContactsContract.DeletedContacts.CONTACT_ID,ContactsContract.DeletedContacts.CONTACT_DELETED_TIMESTAMP)
val contactLastDeletedTimeStamp = SharedPreferenceManager.instance.getLongFromPreference("contact_sync_last_updated_timestamp")
val deletedContactSelection = ContactsContract.DeletedContacts.CONTACT_DELETED_TIMESTAMP + " > ?";
val deletedContactSelectionArgs = arrayOf<String>(contactLastDeletedTimeStamp.toString())
var deletedContactsCursor = context.contentResolver.query(ContactsContract.DeletedContacts.CONTENT_URI, deletedContactsProjection,deletedContactSelection, deletedContactSelectionArgs,null)

使用上面的光标我可以获取最后删除的联系人。
当我检查从光标中删除的联系人的 ContactsContract.DeletedContacts.CONTACT_ID 时,它与我删除的联系人 ID 相同。 但问题是当我尝试使用 ContactsContract.DeletedContacts.CONTACT_ID 从 ContactsContract.Contacts 表中获取联系人时,它总是返回 null。
这是我使用的查询。
 String[] contactNumberProjection = {ContactsContract.Contacts._ID}; String contactId = deletedContactsCursor.getString(deletedContactsCursor.getColumnIndex(ContactsContract.DeletedContacts.CONTACT_ID)); String contactSelection = ContactsContract.Contacts._ID + " = ?"; String[] contactSelectionArg = {contactId}; Cursor contactCursor = context.getContentResolver().query(ContactsContract.Contacts.CONTENT_URI,contactNumberProjection,contactSelection,contactSelectionArg,null);

你能告诉我哪里做错了吗??

当联系人从主Contacts表中删除时,它显然会从该表中删除,以便该联系人不会出现在用户正在使用其当前联系人视图的联系人应用程序中。

因此,您只能在DeletedContacts表中获取已删除联系人的详细信息。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM