从 android 联系人中删除单个联系人
Posted
技术标签:
【中文标题】从 android 联系人中删除单个联系人【英文标题】:deleting single contact from android contacts 【发布时间】:2014-02-14 05:06:39 【问题描述】:好吧,我要疯了。 我已经搞砸了一段时间。一旦您知道contact_id 这么简单,不应该删除单个联系人吗?此删除运行,不会引发错误,但不会删除联系人。
日志信息显示如下:
delete contact_id = '615'
delete return code : 0
这是涉及的代码:
private static int deleteContact(Context c, String id)
String where = ContactsContract.Data.CONTACT_ID + " = '" + id + "'";
int rc = -1;
try
Log.i("delete", where);
rc = c.getContentResolver().delete(ContactsContract.Contacts.CONTENT_URI, where, null);
Log.i("delete",String.format("return code : %d", rc));
catch (Exception e)
System.out.println(e.getStackTrace());
return rc;
有人可以帮我找到解决方案或提出替代方案吗?
【问题讨论】:
首先,你确定这个id的联系人存在吗?其次,更好的选择是使用c.getContentResolver().delete(ContactsContract.Contacts.CONTENT_URI, ContactsContract.Data.CONTACT_ID + "=?", new String[] id);
你试过***.com/questions/527216/…的方法吗?
第一个答案是……是的。我确定该 ID 存在。我(愚蠢的我)选择同步 Outlook 和谷歌地址簿。我希望有一个相当智能的同步,但不是那么多。因此,我有一些重复。我正在使用的代码通过检查 AccountType 的联系人循环...如果它是谷歌,它会留下来,它的外观将 id 传递给我的小函数以被删除。我从 SO#527216 中的代码开始,将其清理为我所拥有的。我确实从建议的开始(
【参考方案1】:
好吧,我回去重温了 questions/527216/... 如果它对我不起作用,那该死的。我不知道我整天做错了什么......但是休息了几个小时,再复制/粘贴一些,这个功能会为我删除一个联系人:
private static int deleteContact(Context c, String lookupKey)
int rc = 0;
ContentResolver cr = c.getContentResolver();
try
Uri uri = Uri.withAppendedPath(
ContactsContract.Contacts.CONTENT_LOOKUP_URI, lookupKey);
rc = cr.delete(uri, null, null);
catch (Exception e)
System.out.println(e.getStackTrace());
return rc;
感谢您的回答!
【讨论】:
所有联系人都被删除以上是关于从 android 联系人中删除单个联系人的主要内容,如果未能解决你的问题,请参考以下文章
如何从 android 手机中获取已删除的联系人以及如何恢复它