2015-07-22 3 views
0

Я хочу удалить все контакты с моего телефона Android, который начинается с «AAA» или содержит «AAA». Вот что я пробовал:Как удалить все контакты Android, начинающиеся с определенного имени?

private void deleteContact(String name) { 

     ContentResolver cr = getContentResolver(); 
     String where = ContactsContract.Data.DISPLAY_NAME + " = ? "; 
     String[] params = new String[] {"AAAA"}; 

     ArrayList<ContentProviderOperation> ops = new ArrayList<ContentProviderOperation>(); 
     ops.add(ContentProviderOperation.newDelete(ContactsContract.RawContacts.CONTENT_URI) 
       .withSelection(where, params) 
       .build()); 
     Log.e(",,,,",String.valueOf(ops.get(0))); 
     try { 


      cr.applyBatch(ContactsContract.AUTHORITY, ops); 
     } catch (RemoteException e) { 
      // TODO Auto-generated catch block 
      e.printStackTrace(); 
     } catch (OperationApplicationException e) { 
      // TODO Auto-generated catch block 
      e.printStackTrace(); 
     } 

     Toast.makeText(NativeContentProvider.this, "Deleted the contact with name '" + name +"'", Toast.LENGTH_SHORT).show(); 

    } 

, но не удалось. Пожалуйста, дайте мне некоторое представление, чтобы я мог продолжить работу в моем проекте.

+0

не удалось, как? пожалуйста, сообщите, какая ошибка или проблема вы получаете. – jotadepicas

ответ

1

Может быть, это поможет вам на правильном пути:

ContentResolver mContentResolver = getContentResolver(); 
    private int deleteContactsLike(String name) { 
    return mContentResolver.delete(
      ContactsContract.RawContacts.CONTENT_URI, 
      ContactsContract.Contacts.DISPLAY_NAME 
      + " like ?", 
      new String[] { name + '%'}); 
+0

вот ошибка, которую я получаю: android.database.sqlite.SQLiteException: near "=": синтаксическая ошибка (код 1): при компиляции: SELECT _id, contact_id FROM view_raw_contacts WHERE display_name like =? –

+0

1-я вещь: в вашем запросе не должно быть «=». В моем примере выше используется оператор типа «как». 2-я вещь: если вы пытаетесь удалить записи, не должно быть никаких команд «select». Вы должны использовать метод удаления распознавателя контента. – Baker

+0

Сэр, Бейкер, вы делаете это правильно, но я нахожусь в фазе запуска Android, сэр может убрать удаленный от моей системы, так как я просто застрял в середине моего проекта из-за этой проблемы. –