我是 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/