J'essaie d'ajouter un contact dans Android en utilisant getContentResolver
. D'abord, je créé un ArrayList
:API de contact stockant le contact comme un contact invisible: comment le rendre visible?
ArrayList<ContentProviderOperation> ops =
new ArrayList<ContentProviderOperation>();
ensuite rempli la liste de tableau par
int rawContactInsertIndex = ops.size();
ops.add(ContentProviderOperation.newInsert(RawContacts.CONTENT_URI)
.withValue(ContactsContract.RawContacts.ACCOUNT_NAME,accountName)
.build());
ops.add(ContentProviderOperation.newInsert(ContactsContract.Data.CONTENT_URI)
.withValueBackReference(ContactsContract.Data.RAW_CONTACT_ID,rawContactInsertIndex)
.withValue(ContactsContract.Data.MIMETYPE,ContactsContract.CommonDataKinds.StructuredName.CONTENT_ITEM_TYPE)
.withValue(ContactsContract.CommonDataKinds.StructuredName.DISPLAY_NAME, name)
.build());
et enfin dans un bloc try
getContentResolver().applyBatch(ContactsContract.AUTHORITY, ops);
quand j'Excecute, je ne reçois pas erreur ou exception. Mais le contact n'apparaît pas dans les contacts Android. Quand je récupère les contacts invisibles, je peux trouver ce contact. Quelqu'un peut-il comprendre ce qui ne va pas?
Probablement une question stupide mais sur le réglage du téléphone avez-vous rendre visible seulement le contact avec les numéros. – Terrance
Une autre chose que j'aimerais ajouter est que certains téléphones vous permettent de sélectionner uniquement les contacts qui appartiennent à certains groupes Google (quel que soit votre configuration). Si un nouveau contact ne fait pas partie de l'un de ces groupes, vous ne le verrez pas. Vérifiez votre compte GMail et voyez si le contact a été correctement synchronisé là-haut. –
@Terrance: puis-je savoir si vous connaissez la réponse ou non? il n'y a rien à voir avec la prise de contact visible ... même dans mon application si je veux récupérer ces contacts, je ne peux utiliser que le drapeau invisible. – Ads