android - 删除特定的 RawContact 内容目录条目

标签 android android-contacts rawcontacts

我是 android 开发新手,所以我可能会完全弄错整个概念。我想从 RawContact 目录条目中删除特定条目。这是我的代码:

Uri rawContactUri = ContentUris.withAppendedId(RawContacts.CONTENT_URI, rawContactId);
         Uri entityUri = Uri.withAppendedPath(rawContactUri, Entity.CONTENT_DIRECTORY);
         Cursor c = getContentResolver().query(entityUri,
                  new String[]{RawContacts._ID, Entity.DATA_ID, Entity.MIMETYPE,CommonDataKinds.GroupMembership.GROUP_SOURCE_ID},
                  null, null, null);

使用游标 c 我得到适当的 Entity.DATA_ID。之后我尝试删除一个条目:

 getContentResolver().delete(entityUri,Entity.DATA_ID+"=?",
                  new String[]{id});

并得到一个错误:

java.lang.UnsupportedOperationException: URI: content://com.android.contacts/raw_contacts/2709/entity

我做错了什么?

更新 1 我正在尝试删除组成员资格条目。

最佳答案

请更完整地解释您要执行的操作。你说你想“从 RawContact 目录条目中删除特定条目。”,这令人困惑?你要不要

a) 删除原始联系人? b) 删除一组原始联系人? c) 删除单个原始联系人的所有数据行? d) 删除一组原始联系人的所有数据行?

或者您想对群组成员资格做些什么?

无论如何,我认为您已经反向构建了 URI。尝试在 rawContactId 之前附加 Entity.CONTENT_DIRECTORY。我知道文档没有这么说,但是文档写得不好。

更好的选择是使用 ContactsContract.RawContactEntity 表。

关于android - 删除特定的 RawContact 内容目录条目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13977785/

相关文章:

android - 联系人与原始联系人有什么区别?

Android - 扩展相对布局/图像转换

android - 使 View 位于重叠的 View 后面以响应 Tap 事件

android - 滚动 ListView 时数据解释错误

android - 从android中的电话簿中选择多个联系人

android自定义建议不会出现

android - 如何将数组列表与移动联系人进行比较

安卓通讯录

android - 插入具有特定 contactid 的 RawContact