Considérons le code ci-dessous. Par exemple, si displayName
= "Squirrel, Rocky J." alors il apparaît dans les contacts comme "Rocky J. Squirrel". J'aimerais être inscrit tel quel, c'est-à-dire "Squirrel, Rocky J." Cependant, dans le docs, je ne vois pas cela comme une option.
Comment est-ce que je fais ceci?Ajouter un contact avec le nom de famille en premier
if (displayName != null) {
contentProviderOperationArrayList.add(ContentProviderOperation.newInsert(
ContactsContract.Data.CONTENT_URI)
.withValueBackReference(ContactsContract.Data.RAW_CONTACT_ID, 0)
.withValue(ContactsContract.Data.MIMETYPE,
ContactsContract.CommonDataKinds.StructuredName.CONTENT_ITEM_TYPE)
.withValue(
ContactsContract.CommonDataKinds.StructuredName.DISPLAY_NAME,
displayName)
.build());
}
Edit:
Après avoir modifié les paramètres comme suggéré par Marmor ... si je "Léon Tolstoï" et "Langston Hughes" j'attendre à voir la liste de contact:
H
Hughes, Langston
T
Tolstoï, Leo
au lieu de cela, je vois (Samsung SM-T530)
L
Hughes, Langston
Tolstoï, Leo
(sur Pixel C)
H
Langston Hughes
T
Léon Tolstoï
donc non seulement l'affichage semble être dépendant du périphérique et prêtant à confusion, il semble qu'il ne puisse pas être contrôlé par programme.