Контакты Android: обновление, удаление, вставка - PullRequest
1 голос
/ 16 марта 2011

У меня проблемы с основными операциями в книге контактов, похоже, официальные примеры не работают для меня.Один из них:

ops.add(ContentProviderOperation.newInsert(Data.CONTENT_URI)
                      .withValue(Data.RAW_CONTACT_ID, id)
                      .withValue(Data.MIMETYPE, Phone.CONTENT_ITEM_TYPE)
                      .withValue(Phone.NUMBER, "1-800-GOOG-411")
                      .withValue(Phone.TYPE, Phone.TYPE_CUSTOM)
                      .withValue(Phone.LABEL, "free directory assistance")
                      .build());

Это должно добавить контакт с указанным идентификатором, но я не получаю никаких новых контактов после запуска этого кода в эмуляторе.

Я буду очень признателен за любойруководящий ответ или ссылка на учебные пособия.

Ответы [ 2 ]

1 голос
/ 05 декабря 2012

Просто этот код реализуйте для своих приложений и попробуйте для удалить определенный список контактов,

ContentResolver cr = getContentResolver();
                Cursor cur = cr.query(ContactsContract.CommonDataKinds.Phone.CONTENT_URI, null, 
                        ContactsContract.CommonDataKinds.Phone.CONTACT_ID + " = ?" , new String[] { contactsId(your) }, null);

                if (cur.getCount() > 0) {

                    while (cur.moveToNext()) {

                        try {
                            String lookupKey = cur .getString(cur .getColumnIndex(ContactsContract.Contacts.LOOKUP_KEY));
                            Uri uri = Uri.withAppendedPath( ContactsContract.Contacts.CONTENT_LOOKUP_URI, lookupKey);
                            cr.delete(uri, null, null);
                            setFinish();
                        } catch (Exception e) {
                            e.getStackTrace();
                        }
                    }
                }
1 голос
/ 26 марта 2011

у вас должны быть следующие разрешения:

<uses-permission android:name="android.permission.WRITE_CONTACTS"></uses-permission>
<uses-permission android:name="android.permission.READ_CONTACTS"></uses-permission>

у вас должен быть код (после вашего кода):

try {
    getContentResolver().applyBatch(ContactsContract.AUTHORITY, ops);
} catch (Exception e) {
    e.printStackTrace();
}

это попытается вставить / обновить контакт

...