Добавить новый контакт с помощью нескольких телефонных номеров

Я хочу добавить новый контакт, используя ContactsContract.Intents.Insert . Но проблема в том, что я не знаю, сколько телефонных номеров может быть. И, насколько я понимаю, я могу передать только три телефонных номера, используя константы PHONE , SECONDARY_PHONE , TERTIARY_PHONE . Есть ли способ передать более трех чисел?

Нашел решение. Он заключается в использовании ContentValues:

 Intent intent = new Intent(Intent.ACTION_INSERT); intent.setType(ContactsContract.Contacts.CONTENT_TYPE); ArrayList<ContentValues> data = new ArrayList<ContentValues>(); //Filling data with phone numbers for (int i = 0; i < numberOfPhones; i++) { ContentValues row = new ContentValues(); row.put(Data.MIMETYPE, Phone.CONTENT_ITEM_TYPE); row.put(Phone.NUMBER, PhonesNumberList.get(i)); row.put(Phone.TYPE, Phone.TYPE_WORK); data.add(row); } contactIntent.putExtra(ContactsContract.Intents.Insert.NAME, mName); contactIntent.putParcelableArrayListExtra(ContactsContract.Intents.Insert.DATA, data); startActivity(contactIntent); 

Расширьте ответ Ov3r1oad по электронной почте:

 ContentValues row = new ContentValues(); row.put(ContactsContract.Data.MIMETYPE, ContactsContract.CommonDataKinds.Email.CONTENT_ITEM_TYPE); row.put(ContactsContract.CommonDataKinds.Email.ADDRESS, emailAddress); row.put(ContactsContract.CommonDataKinds.Email.TYPE, ContactsContract.CommonDataKinds.Email.TYPE_WORK); data.add(row);