Samsung Galaxy S4 und einige Geräte unterstützen nur Structured Post während der Verwendung Intent 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);
Für Galaxy S3, das unter 4.2 läuft, wird jetzt keine strukturierte Adresse unterstützt, und die Adresse wird nicht mit dem obigen Code angezeigt.
Wie finde ich heraus, ob ein Gerät eine strukturierte Postanschrift unterstützt, sodass ich beides unterstützen kann?
Hinweis: Wenn ich benutze intent.putExtra(ContactsContract.Intents.Insert.POSTAL, address);
Das Galaxy S3 zeigt die Adresse wo während der Verwendung intent.putParcelableArrayListExtra(Insert.DATA, data);
Dieser S3 kann die Adresse nicht anzeigen.
Antworten:
1 für die Antwort № 1Speichern Sie sowohl die strukturierten Felder (für Telefone, die diese unterstützen) als auch die StructuredPostal.FORMATTED_ADDRESS
. Sie müssen die Formatierung jedoch selbst vornehmen. Das ist was VCardEntry scheint es.