【发布时间】:2010-06-17 03:05:13
【问题描述】:
我一直在使用 Android 联系人。我可以向他们展示,更新但 当我想删除任何内容时,它并没有完全删除。在联系人中 应用程序显示为(未知),没有任何数据。这是我的例子:
ArrayList<ContentProviderOperation> ops = new ArrayList<ContentProviderOperation>();
ops.add(ContentProviderOperation.newDelete(Data.CONTENT_URI)
.withSelection(Data.CONTACT_ID + "=?", new String[]{selectedid})
.build());
getContentResolver().applyBatch(ContactsContract.AUTHORITY, ops);
我应该采取其他措施来完全删除联系人吗? 似乎这些代码删除了表 ContactsContract.Data 中的信息,但它没有删除表 ContactsContract.Contacts 或 ContactsContract.RawContacts 中相关的元素。如何才能完全删除联系人?
================================================ ==============================
另外,我尝试了不推荐使用的方法。它有效,但我不想这样做。下面是示例代码:
ContentResolver contentResolver = m_cContent.getContentResolver();
contentResolver.delete(People.CONTENT_URI, People.NAME + "=?", new String[] { SelectedName });
如果我将此代码修改为
ContentResolver contentResolver = m_cContent.getContentResolver();
contentResolver.delete(ContactsContract.Contacts, ContactsContract.Contacts._ID + "=?", new String[] { Selectedid });
没有效果。
这是否意味着只能通过名称而不是 ID 来删除联系人? 我到底该怎么做才能删除联系人?
谢谢, 锚定
【问题讨论】:
-
您必须运行同步过程,以便它使用 Google 通讯录进行更新,而不是永久删除。检查已删除的标志。
-
“你必须运行一个同步过程”我不知道该怎么做。你能告诉我如何运行同步过程吗?请告诉我我可以阅读什么文档或给我一些示例代码。非常感谢。
-
@Enchor 你的问题解决了吗?我现在也在苦苦挣扎。