检测android联系人是不是已被删除
Posted
技术标签:
【中文标题】检测android联系人是不是已被删除【英文标题】:Detect if an android contact has been deleted检测android联系人是否已被删除 【发布时间】:2017-01-27 04:21:15 【问题描述】:我正在尝试维护一个联系人数据库,并在 URI 发生变化时立即获取添加/更新/删除的回调。
我已经编写了一个 ContentObserver 来观察联系人的 ContactsContract.Contacts.CONTENT_URI。我会在联系人更改后立即收到回调,然后通过检查 ContactsContract.Contacts.CONTACT_LAST_UPDATED_TIMESTAMP 更新我的数据库。 虽然这适用于添加/更新,但它确实不适用于删除联系人。
我不想解析内存中的所有联系人并检查 android 数据库。这需要时间和 CPU。
我知道这些类型存在很多问题,但我无法弄清楚删除联系人的具体问题。
有没有办法做到这一点?
【问题讨论】:
你有没有找到任何解决方案,我正在经历同样的事情 @user3475052 : android 为 API 18 及更高版本提供“ContactsContract.DeletedContacts.CONTENT_URI”。您可以使用此内容 Uri 的时间戳来跟踪已删除的联系人。这比通过 Contacts.Content_uri 跟踪联系人要快得多。 嘿,shreyansh,你能解释一下吗 【参考方案1】:正如我在上面的评论中发布的那样,以下代码适用于 API 级别 18 及更高级别。
可以通过uriContactsContract.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);
【讨论】:
什么是 mLastContactDeleteTime? @ShReYaNsH 你能解释一下吗?mLastContactDeleteTime
是什么?以上是关于检测android联系人是不是已被删除的主要内容,如果未能解决你的问题,请参考以下文章
如何检测更新的android联系人并同步到firestore