Ich bin Symbol meiner App im Telefonbuch hinzufügen. Das Problem ist jetzt, dass seine adaequat in Api Ebene < 23 aber nicht auf Api Ebene arbeiten> 23.Hinzufügen App-Symbol auf Kontakt funktioniert nicht in Marshmallow
in API 23 wird die neuen Kontakt mit der Nummer erzeugt.
String MIMETYPE = "vnd.android.cursor.item/com.appiconincontact";
ArrayList<ContentProviderOperation> ops = new ArrayList<ContentProviderOperation>();
// insert account name and account type
ops.add(
ContentProviderOperation
.newInsert(addCallerIsSyncAdapterParameter(RawContacts.CONTENT_URI, true))
.withValue(RawContacts.ACCOUNT_NAME, Constants.ACCOUNT_NAME)
.withValue(RawContacts.ACCOUNT_TYPE, Constants.ACCOUNT_TYPE)
.withValue(RawContacts.AGGREGATION_MODE, RawContacts.AGGREGATION_MODE_DEFAULT)
.build()
);
// insert contact number
ops.add(ContentProviderOperation
.newInsert(addCallerIsSyncAdapterParameter(ContactsContract.Data.CONTENT_URI, true))
.withValueBackReference(ContactsContract.Data.RAW_CONTACT_ID, 0)
.withValue(ContactsContract.Data.MIMETYPE, ContactsContract.CommonDataKinds.Phone.CONTENT_ITEM_TYPE)
.withValue(ContactsContract.CommonDataKinds.Phone.NUMBER, number)
.build());
// insert mime-type data
ops.add(ContentProviderOperation
.newInsert(addCallerIsSyncAdapterParameter(ContactsContract.Data.CONTENT_URI, true))
.withValueBackReference(ContactsContract.Data.RAW_CONTACT_ID, 0)
.withValue(ContactsContract.Data.MIMETYPE, MIMETYPE)
.withValue(ContactsContract.Data.DATA2, Constants.APP_NAME)
.withValue(ContactsContract.Data.DATA3, "User Connected with " + number)
.build());
try {
resolver.applyBatch(ContactsContract.AUTHORITY, ops);
} catch (Exception e) {
e.printStackTrace();
}
können Sie den vollständigen Code dafür hinzufügen. es funktioniert nicht –
hinzugefügt Code, der zeigt, wie diese Operation passt in Ihre bestehende Batch – marmor
im Erstellen von ** row-contact_id ** über diesen Link http://StackOverflow.com/Questions/19675279/getting-rawContact-Id-using- Kontakt-ID, aber nicht funktioniert –