【问题标题】:getContentResolver().delete doesn't workgetContentResolver().delete 不起作用
【发布时间】:2014-06-09 14:42:29
【问题描述】:

我正在尝试删除特定联系人!我搜索了很多,但我尝试的每个代码都不起作用!

public void delete(String name,String numero)
{
Cursor cur = getContentResolver().query(Contacts.CONTENT_URI,null, null, null, null);

while (cur.moveToNext())
{
    try
    {
        String[] selectionArgs=new String[]{String.valueOf(numero)};
        String lookupKey = cur.getString(cur.getColumnIndex(Contacts.LOOKUP_KEY));
        Uri uri = Uri.withAppendedPath(Contacts.CONTENT_LOOKUP_URI, lookupKey);
        getContentResolver().delete(uri, Phone.NUMBER +"=?", selectionArgs);
    }
    catch(Exception e)
    {
       System.out.println(e.getStackTrace());
    }
}

}

我也尝试了这个而不是指定 selectionArgs 但什么都没有

getContentResolver().delete(uri, Contacts.DISPLAY_NAME +"="+ name, null);

并尝试将 Contacts. 更改为 ContactsContract.Contacts. 但没有 并尝试使用联系人显示名称而不是号码进行删除。 看来选择不起作用! uri 值是Uri$HierarchicalUri 对吗?

有什么问题?

【问题讨论】:

  • 您是否设置了正确的权限?
  • 是的,但是现在所有的联系人都会被删除,而我只想删除那个号码的联系人
  • 我有类似的问题,但不是联系人...尝试将值设置在引号中,例如+ " = '" + name"'"(单引号')

标签: android uri contacts android-contentresolver


【解决方案1】:

改变

getContentResolver().delete(uri, Contacts.DISPLAY_NAME +"="+ name, null);

String[] names = {name};
getContentResolver().delete(uri, Contacts.DISPLAY_NAME +"=?", names);

【讨论】:

  • 还是不行!我尝试使用 Phone.NUMBER 而不是显示名称,但无法正常工作!它继续删除所有联系人
猜你喜欢
  • 2018-07-19
  • 2014-09-28
  • 1970-01-01
  • 2014-10-25
  • 2018-01-21
  • 1970-01-01
  • 2015-06-04
  • 2012-11-03
  • 1970-01-01
相关资源
最近更新 更多