2014-01-23 3 views
2

Хорошо, я собираюсь батти. Я уже немного возился с этим. Нельзя удалить один контакт, если вы знаете, что contact_id будет таким простым? Это удаление выполняется, не вызывает ошибки, но не удаляет контакт.удаление одного контакта из контактов android

Записывать информацию показать что-то вроде:

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; 
} 

Может кто-нибудь помочь мне найти решение или предложить альтернативу?

+0

Во-первых, вы уверены, что контакт с этим идентификатором существует? Во-вторых, лучшим вариантом является использование 'c.getContentResolver(). delete (ContactsContract.Contacts.CONTENT_URI, ContactsContract.Data.CONTACT_ID +" =? ", новый String [] {id});' – Selvin

+1

Вы пробовали найденный метод на http://stackoverflow.com/questions/527216/how-to-remove-a-contact-programmatically-in-android? –

+0

Ответ на первый вопрос ... да. Я уверен, что ID существует. Я (глупый) решил синхронизировать как адресные, так и адресные книги google. Я надеялся на довольно интеллектуальную синхронизацию, но не так много. Следовательно, у меня есть несколько дубликатов. В коде я использую циклы через контакты, изучающие AccountType ..., если это google, он остается, его внешний вид id передается моей маленькой функции для удаления. Я начал с кода в SO # 527216, очистил его до того, что у меня есть. Я начал с предложенного ( – mcmprch

ответ

-1

Ну, я вернулся и перепросил вопросы/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; 
} 

Спасибо за ответы!

+0

Все контакты удалены –

Смежные вопросы