Samsung Galaxy S4 et certains appareils ne prennent en charge que le courrier postal structuré tout en utilisant Intention Action_Insert
ArrayList<ContentValues> data = new ArrayList<ContentValues>();
...
ContentValues name = new ContentValues();
name.put(Data.MIMETYPE, StructuredPostal.CONTENT_ITEM_TYPE);
name.put(StructuredPostal.STREET, bundle.getString(StructuredPostal.STREET));
name.put(StructuredPostal.CITY, bundle.getString(StructuredPostal.CITY));
name.put(StructuredPostal.REGION, bundle.getString(StructuredPostal.REGION));
name.put(StructuredPostal.NEIGHBORHOOD, bundle.getString(StructuredPostal.NEIGHBORHOOD));
name.put(StructuredPostal.POSTCODE, bundle.getString(StructuredPostal.POSTCODE));
name.put(StructuredPostal.COUNTRY, bundle.getString(StructuredPostal.COUNTRY));
data.add(name);
Intent intent = new Intent(Intent.ACTION_INSERT, ContactsContract.Contacts.CONTENT_URI);
intent.putExtra(ContactsContract.Intents.Insert.NAME, contactName);
if(android.os.Build.VERSION.SDK_INT > android.os.Build.VERSION_CODES.HONEYCOMB)
intent.putParcelableArrayListExtra(Insert.DATA, data);
else
intent.putExtra(ContactsContract.Intents.Insert.POSTAL, address);
Maintenant, pour Galaxy S3 qui fonctionne sur 4.2 ne supporte pas les adresses structurées et ne montre pas l’adresse en utilisant le code ci-dessus.
Alors, comment puis-je savoir si un appareil prend en charge une adresse postale structurée pour pouvoir prendre en charge les deux?
Remarque: Si j'utilise intent.putExtra(ContactsContract.Intents.Insert.POSTAL, address);
Galaxy S3 affiche l'adresse où comme lors de l'utilisation intent.putParcelableArrayListExtra(Insert.DATA, data);
cette S3 pas en mesure d'afficher l'adresse.
Réponses:
1 pour la réponse № 1Essayez d’enregistrer les champs structurés comme vous le faites (pour les téléphones compatibles) ainsi que les StructuredPostal.FORMATTED_ADDRESS
. Vous devrez cependant faire le formatage vous-même. C’est ce que VCardEntry fait, semble-t-il.