Salve a tutti!
Ho visionato vari topic e testato vari codici ma ancora non riesco a trovare la soluzione a questo problema: devo scrivere sulla rubrica principale dello smartphone.
Ho settato tutti i permessi nel manifest.
Quello che faccio è:
codice:
private void createContact(String cognome, String nome, String tel1,
String email) {
try {
ArrayList<ContentProviderOperation> ops = new ArrayList<ContentProviderOperation>();
int rawContactInsertIndex = ops.size();
ops.add(ContentProviderOperation
.newInsert(RawContacts.CONTENT_URI)
.withValue(RawContacts.ACCOUNT_TYPE,
"la creazione del topic non mi fa scrivere l'indirizzo, cmq è: accountnameATgmailDOTcom")
.withValue(RawContacts.ACCOUNT_NAME, "com.google").build());
ops.add(ContentProviderOperation
.newInsert(Data.CONTENT_URI)
.withValueBackReference(Data.RAW_CONTACT_ID,
rawContactInsertIndex)
.withValue(Data.MIMETYPE, StructuredName.CONTENT_ITEM_TYPE)
.withValue(StructuredName.GIVEN_NAME, nome) // ho provato anche con .DISPLAY_NAME
.withValue(StructuredName.FAMILY_NAME, cognome).build());
ops.add(ContentProviderOperation
.newInsert(ContactsContract.Data.CONTENT_URI)
.withValueBackReference(
ContactsContract.Data.RAW_CONTACT_ID,
rawContactInsertIndex)
.withValue(
ContactsContract.Data.MIMETYPE,
ContactsContract.CommonDataKinds.Phone.CONTENT_ITEM_TYPE)
.withValue(ContactsContract.CommonDataKinds.Phone.NUMBER,
tel1)
.withValue(ContactsContract.CommonDataKinds.Phone.TYPE,
ContactsContract.CommonDataKinds.Phone.TYPE_HOME)
.build());
ops.add(ContentProviderOperation
.newInsert(ContactsContract.Data.CONTENT_URI)
.withValueBackReference(
ContactsContract.Data.RAW_CONTACT_ID,
rawContactInsertIndex)
.withValue(
ContactsContract.Data.MIMETYPE,
ContactsContract.CommonDataKinds.Email.CONTENT_ITEM_TYPE)
.withValue(
ContactsContract.CommonDataKinds.Email.CONTENT_ITEM_TYPE,
email).build());
getContentResolver().applyBatch(ContactsContract.AUTHORITY, ops); //il warning punta a questa riga di codice
} catch (RemoteException e) {
e.printStackTrace();
} catch (OperationApplicationException e) {
e.printStackTrace();
}
}
ecco il logcat:
1.jpg
Grazie infinite in anticipo!