APIs unter Android 4.0.3

API-Level: 15

Android 4.0.3 (ICE_CREAM_SANDWICH_MR1) ist ein inkrementeller Release der Plattformfamilie von Android 4.0 (ICE_CREAM_SANDWICH). Diese Version enthält neue Funktionen für Nutzer und Entwickler, API-Änderungen und verschiedene Fehlerkorrekturen.

Für Entwickler steht die Plattform Android 4.0.3 als herunterladbare Komponente für das Android SDK zur Verfügung. Die herunterladbare Plattform umfasst eine Android-Bibliothek, ein System-Image, eine Reihe von Emulator-Skins und mehr. Wenn du mit der Entwicklung oder Tests für Android 4.0.3 beginnen möchtest, lade die Plattform mit dem Android SDK Manager in dein SDK herunter.

API-Übersicht

Die folgenden Abschnitte bieten einen technischen Überblick über die neuen APIs in Android 4.0.3.

Social Stream API im Contacts Provider

Anwendungen, die Daten aus sozialen Streams wie Statusaktualisierungen und Check-ins verwenden, können diese Daten jetzt mit den einzelnen Kontakten des Nutzers synchronisieren und Elemente in einem Stream mit Fotos für die einzelnen Kontakte bereitstellen.

Die Datenbanktabelle, die den sozialen Stream eines einzelnen Kontakts enthält, wird durch android.provider.ContactsContract.StreamItems definiert, den URI, für den der URI im Verzeichnis ContactsContract.RawContacts verschachtelt ist, zu dem die Streamelemente gehören. Jede Tabelle für soziale Streams enthält mehrere Spalten für Metadaten zu jedem Streamelement, z. B. ein Symbol für die Quelle (einen Avatar), ein Label für das Element, den primären Textinhalt, Kommentare zum Element (z. B. Antworten von anderen Personen) und mehr. Mit einem Stream verknüpfte Fotos werden in einer anderen Tabelle gespeichert, die durch android.provider.ContactsContract.StreamItemPhotos definiert wird. Diese ist als Unterverzeichnis von android.provider.ContactsContract.StreamItems Uri verfügbar.

Weitere Informationen finden Sie unter android.provider.ContactsContract.StreamItems und android.provider.ContactsContract.StreamItemPhotos.

Um Elemente aus sozialen Streams für einen Kontakt zu lesen oder zu schreiben, muss eine Anwendung eine Berechtigung vom Nutzer anfordern, indem <uses-permission android:name="android.permission.READ_SOCIAL_STREAM"> und/oder <uses-permission android:name="android.permission.WRITE_SOCIAL_STREAM"> in ihren Manifestdateien deklariert werden.

Kalenderanbieter

Startbildschirm-Widgets

Ab Android 4.0 sollten Startbildschirm-Widgets keinen eigenen Abstand mehr enthalten. Stattdessen fügt das System jetzt automatisch für jedes Widget einen Innenrand hinzu, der auf den Eigenschaften des aktuellen Bildschirms basiert. Dies führt zu einer einheitlicheren, einheitlichen Darstellung der Widgets in einem Raster. Zur Unterstützung von Anwendungen, die Startbildschirm-Widgets hosten, bietet die Plattform die neue Methode getDefaultPaddingForWidget(). Anwendungen können diese Methode aufrufen, um den systemdefinierten Abstand abzurufen und bei der Berechnung der Anzahl der Zellen zu berücksichtigen, die dem Widget zugewiesen werden sollen.

Rechtschreibprüfung

  • Bei Anwendungen, die auf Dienste für die Rechtschreibprüfung zugreifen, werden mit der neuen Methode cancel() alle ausstehenden und laufenden Rechtschreibprüfungsaufgaben in einer Sitzung abgebrochen.
  • Für die Rechtschreibprüfung können die Dienste mit dem neuen Vorschlags-Flag RESULT_ATTR_HAS_RECOMMENDED_SUGGESTIONS Vorschläge mit höherer Zuverlässigkeit von Vorschlägen mit niedrigerer Zuverlässigkeit unterscheiden. Eine Rechtschreibprüfung könnte beispielsweise das Flag setzen, wenn ein Eingabewort nicht im Nutzerwörterbuch enthalten ist, aber wahrscheinlich Vorschläge enthält, oder das Flag nicht setzen, wenn ein Eingabewort nicht im Wörterbuch enthalten ist und Vorschläge enthält, die wahrscheinlich weniger nützlich sind.

    Apps, die mit der Rechtschreibprüfung verbunden sind, können das Flag RESULT_ATTR_HAS_RECOMMENDED_SUGGESTIONS in Kombination mit anderen Vorschlagsattributen sowie den Methoden getSuggestionsAttributes() und getSuggestionsCount() verwenden, um zu bestimmen, ob eingegebene Wörter als Tippfehler markiert und Vorschläge angezeigt werden sollen.

  • Der neue FLAG_AUTO_CORRECTION-Stil für Text-Spans zeigt an, dass eine automatische Korrektur auf ein Wort / einen Text angewendet wird, den der Nutzer gerade eingibt oder verfasst. Diese Art von Vorschlag wird anders gerendert, um anzuzeigen, dass die automatische Korrektur stattfindet.

Bluetooth

Mit den neuen öffentlichen Methoden fetchUuidsWithSdp() und getUuids() können Apps die von einem Remote-Gerät unterstützten Features (UUIDs) ermitteln. Im Fall von fetchUuidsWithSdp() führt das System eine Diensterkennung auf dem Remote-Gerät aus, um die unterstützten UUIDs zu erhalten. Anschließend sendet das Ergebnis das Ergebnis in einem ACTION_UUID-Intent.

UI-Toolkit

Mit den neuen Methoden setUserVisibleHint() und getUserVisibleHint() kann ein Fragment darauf hinweisen, ob es derzeit für den Nutzer sichtbar ist oder nicht. Das System verzögert den Start von Fragmenten, die für den Nutzer nicht sichtbar sind, bis die Loader für sichtbare Fragmente ausgeführt wurden. Der Sichtbarkeitshinweis ist standardmäßig auf „true“ gesetzt.

Grafik

Bedienungshilfen

Sprachausgabe

  • Die neue Methode getFeatures() zum Abfragen und Aktivieren der Netzwerk-TTS-Unterstützung wurde hinzugefügt.
  • Fügt die neue Listener-Klasse UtteranceProgressListener hinzu, die Suchmaschinen registrieren können, um Benachrichtigungen über Sprachsynthesefehler zu erhalten.

Datenbank

  • Mit der neuen Klasse CrossProcessCursorWrapper können Contentanbieter Ergebnisse für prozessübergreifende Abfragen effizienter zurückgeben. Die neue Klasse ist ein nützlicher Baustein für das Einfügen von Cursors, die remote an Prozesse gesendet werden. Sie kann auch normale Cursor-Objekte transparent in CrossProcessCursor-Objekte umwandeln.

    Die Klasse CrossProcessCursorWrapper behebt häufige Leistungsprobleme und Programmfehler, die bei Anwendungen bei der Implementierung von Contentanbietern aufgetreten sind.

  • Der Konstruktor CursorWindow(java.lang.String) verwendet jetzt einen Namensstring als Eingabe. Das System unterscheidet nicht mehr zwischen lokalen und Remote-Cursor-Fenstern. Daher wurde CursorWindow(boolean) verworfen.

Intents

Es wurden neue Kategorien für die Ausrichtung auf gängige App-Typen auf dem Gerät hinzugefügt, z. B. CATEGORY_APP_BROWSER, CATEGORY_APP_CALENDAR oder CATEGORY_APP_MAPS.

Kamera

Berechtigungen

Dies sind neue Berechtigungen:

  • android.Manifest.permission#READ_SOCIAL_STREAM und android.Manifest.permission#WRITE_SOCIAL_STREAM: Ermöglicht einem Synchronisierungsadapter, Daten aus sozialen Streams in einem Kontakt im freigegebenen Contacts Provider zu lesen und zu schreiben.

Eine detaillierte Ansicht aller API-Änderungen in Android 4.0.3 (API-Level 15) finden Sie im Bericht zu API-Unterschieden.

API-Ebene

Der Android 4.0.3 API wird eine Ganzzahl-ID (15) zugewiesen, die im System selbst gespeichert wird. Diese Kennung, die als „API-Ebene“ bezeichnet wird, ermöglicht dem System, vor der Installation der Anwendung korrekt zu bestimmen, ob eine Anwendung mit dem System kompatibel ist.

Wenn Sie in Android 4.0.3 eingeführte APIs in Ihrer App verwenden möchten, müssen Sie die App mithilfe einer Android-Plattform kompilieren, die API-Level 15 oder höher unterstützt. Je nach Ihren Anforderungen müssen Sie dem Element <uses-sdk> möglicherweise auch ein android:minSdkVersion="15"-Attribut hinzufügen.

Weitere Informationen finden Sie im Dokument API-Ebenen.