/ / Wie erkennt man, dass eine Android-Telefonkontakt-App strukturierte Postanschrift unterstützt? - Android, Android-Absicht, Android-Kontakte

Wie erkennt man eine Android Phone Kontakte App unterstützt strukturierte Postanschrift? - Android, Androide-Intent, Android-Kontakte

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 № 1

Speichern 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.