2014-04-09 12 views
6

Desidero aggiungere un nuovo contatto utilizzando ContactsContract.Intents.Insert. Ma il problema è che non so quanti numeri di telefono possono essere. E come ho capito posso passare solo tre numeri di telefono usando le costanti PHONE, SECONDARY_PHONE, TERTIARY_PHONE. C'è un modo per passare più di tre numeri?Aggiungi nuovo contatto via intent con più numeri di telefono

risposta

8

Trovato una soluzione. Consiste nell'utilizzare 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); 
+0

Sill lavoro Android 6+, Grazie! – norbDEV

0

Estendere Ov3r1oad risposta con la posta elettronica:

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); 
Problemi correlati