【问题标题】:deleting single contact from android contacts从 android 联系人中删除单个联系人
【发布时间】: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});
  • 你试过stackoverflow.com/questions/527216/…的方法吗?
  • 第一个答案是……是的。我确定该 ID 存在。我(愚蠢的我)选择同步 Outlook 和谷歌地址簿。我希望有一个相当智能的同步,但不是那么多。因此,我有一些重复。我正在使用的代码通过检查 AccountType 的联系人循环...如果它是谷歌,它会留下来,它的外观将 id 传递给我的小函数以被删除。我从 SO#527216 中的代码开始,将其清理为我所拥有的。我确实从建议的开始(

标签: android android-contacts


【解决方案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;
}

感谢您的回答!

【讨论】:

  • 所有联系人都被删除
猜你喜欢
  • 1970-01-01
  • 2023-03-23
  • 2013-11-18
  • 1970-01-01
  • 2013-07-11
  • 2018-10-14
  • 2016-09-19
  • 2021-02-08
  • 1970-01-01
相关资源
最近更新 更多