Как создать контакт программно

Возможный дубликат:
Как добавить новые контакты в андроиде

public boolean createContact(String name, String number, String email) 
{
        boolean success = true;

        try
        {
            ContentValues contentValues = new ContentValues();

            ContentResolver contentResolver  = getContentResolver();

            contentValues.put(Data.MIMETYPE, Phone.CONTENT_ITEM_TYPE);
            contentValues.put(Phone.NUMBER, "123254");
            Uri uri = contentResolver.insert(android.provider.ContactsContract.Data.CONTENT_URI, contentValues);

            if(uri==null)
            {
                success = false;
            }

        }
        catch (Exception e) 
        {
            e.printStackTrace();
            success = false;
        }
        return success;
}

Я получаю исключение NullPointer. Не знаю, почему я также указал разрешение WRITE_CONTACTS. Пожалуйста помогите ............


person KK_07k11A0585    schedule 07.12.2011    source источник
comment
Я не хочу использовать android.provider.Contacts, я хочу создать контакт с помощью android.provider.ContactContracts   -  person KK_07k11A0585    schedule 09.12.2011
comment
удачи stackoverflow.com/questions /4744187/   -  person lnu    schedule 09.12.2011
comment
Используйте библиотеку contactslib. (Справедливое предупреждение: она больше не поддерживается.) Вот страница, на которой они показать вам, как добавить новые контакты. Это, безусловно, самый чистый метод.   -  person st0le    schedule 09.12.2011
comment
спасибо за ваш ответ, но не могли бы вы сказать мне, как мне реализовать PersonContact ContactsHelper и другие классы, я не понимаю, что это на самом деле там делает, они ничего не упомянули о android.provider.ContactContracts, который является базовым uri для всех контактов   -  person KK_07k11A0585    schedule 09.12.2011
comment
@ KK_07k11A0585, это с открытым исходным кодом. Сделайте SVN Checkout (на странице) или вы можете просмотреть исходный код онлайн :)   -  person st0le    schedule 09.12.2011
comment
Посмотрите здесь stackoverflow.com/a/4242649/95313 и здесь stackoverflow.com/a/4463797/95313. Оба подхода должны работать. Как видите, требуется несколько разных операций — добавление самого RawContact, добавление телефона для него и т. д. Чтобы лучше понять все это, вам нужно прочитать это developer.android.com/resources/articles/contacts.html.   -  person Fedor    schedule 11.12.2011
comment
какую версию SDK вы используете?   -  person Lelouch Lamperouge    schedule 16.12.2011


Ответы (1)


ContentValues values = new ContentValues();
            values.put(Data.RAW_CONTACT_ID, 001);
            values.put(Data.MIMETYPE, Phone.CONTENT_ITEM_TYPE);
            values.put(Phone.NUMBER, "            1-800-GOOG-411      ");
            values.put(Phone.TYPE, Phone.TYPE_CUSTOM);
            values.put(Phone.LABEL, "free directory assistance");
            Uri dataUri = getContentResolver().insert(android.provider.ContactsContract.Data.CONTENT_URI, values);

Используйте приведенный выше код. Вы не предоставляете идентификатор. http://developer.android.com/reference/android/provider/ContactsContract.Data.html

person Abhinava    schedule 16.12.2011
comment
Почему пробелы вокруг номера телефона? - person Adriano G. V. Esposito; 26.11.2015