J'essaie d'ajouter un nouveau contact à ma liste de contacts en utilisant la nouvelle API ContactContract via mon application. J'ai la méthode suivante basée sur l'exemple de gestionnaire de contacts sur android dev.Problème lors de l'ajout Contact avec la nouvelle API
private static void addContactCore(Context context, String accountType, String accountName, String name, String phoneNumber, int phoneType) throws RemoteException, OperationApplicationException {
ArrayList<ContentProviderOperation> ops = new ArrayList<ContentProviderOperation>();
//Add contact type
ops.add(ContentProviderOperation.newInsert(ContactsContract.RawContacts.CONTENT_URI)
.withValue(ContactsContract.RawContacts.ACCOUNT_TYPE, accountType)
.withValue(ContactsContract.RawContacts.ACCOUNT_NAME, accountName)
.build());
//Add contact name
ops.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, (!name.toLowerCase().equals("unavailable") && !name.equals("")) ? name : phoneNumber)
.build());
//Add phone number
ops.add(ContentProviderOperation.newInsert(ContactsContract.Data.CONTENT_URI)
.withValueBackReference(ContactsContract.Data.RAW_CONTACT_ID, 0)
.withValue(ContactsContract.Data.MIMETYPE, ContactsContract.CommonDataKinds.Phone.CONTENT_ITEM_TYPE)
.withValue(ContactsContract.CommonDataKinds.Phone.NUMBER, phoneNumber)
.withValue(ContactsContract.CommonDataKinds.Phone.TYPE, phoneType)
.build());
//Add contact
context.getContentResolver().applyBatch(ContactsContract.AUTHORITY, ops);
}
Dans un exemple, j'ai les valeurs qui s'écoulent pour les paramètres. accountType: com.google accountName: nom (mon e-mail de votre compte google) : Mike phoneNumber: 5555555555 PHONETYPE: 3
L'appel à la fonction retourne normalement sans aucune exception levée mais le contact est nulle part où être trouvé dans le gestionnaire de contacts sur mon téléphone. Il n'y a pas non plus de contact avec cette information sur mon téléphone. Est-ce que quelqu'un a un aperçu de ce que je pourrais faire de mal?
Cela a fonctionné pour moi. Plus précisément, allez dans Contacts -> Options d'affichage -> [compte] et cochez "Tous les autres contacts" – MobileDev852