APIs unter Android 4.0.3

API-Ebene: 15

Android 4.0.3 (ICE_CREAM_SANDWICH_MR1) ist eine inkrementelle Version der Plattformfamilie 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 ist die Android 4.0.3-Plattform als herunterladbare Komponente für das Android SDK verfügbar. Die herunterladbare Plattform enthält unter anderem eine Android-Bibliothek und ein System-Image sowie eine Reihe von Emulator-Skins. Wenn Sie mit der Entwicklung oder dem Testen für Android 4.0.3 beginnen möchten, laden Sie die Plattform mit dem Android SDK Manager in Ihr SDK herunter.

API-Übersicht

In den folgenden Abschnitten erhalten Sie einen technischen Überblick über die neuen APIs in Android 4.0.3.

Social Stream API im Anbieter von Kontaktdaten

Apps, die Daten aus dem Social Stream wie Statusaktualisierungen und Check-ins verwenden, können diese Daten jetzt mit den Kontakten des Nutzers synchronisieren und so Elemente in einem Stream zusammen mit Fotos für jeden Nutzer bereitstellen.

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

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

Wenn eine App Elemente aus dem Social Stream für einen Kontakt lesen oder schreiben möchte, muss sie die Berechtigung vom Nutzer anfordern, indem sie <uses-permission android:name="android.permission.READ_SOCIAL_STREAM"> und/oder <uses-permission android:name="android.permission.WRITE_SOCIAL_STREAM"> in ihren Manifestdateien deklariert.

Kalenderanbieter

Startbildschirm-Widgets

Ab Android 4.0 sollten Startbildschirm-Widgets kein eigenes Padding mehr enthalten. Stattdessen fügt das System jetzt automatisch Ränder für jedes Widget hinzu, basierend auf den Eigenschaften des aktuellen Bildschirms. Das führt zu einer einheitlicheren, konsistenteren Darstellung von Widgets in einem Raster. Für Anwendungen, die Startbildschirm-Widgets hosten, bietet die Plattform die neue Methode getDefaultPaddingForWidget(). Anwendungen können diese Methode aufrufen, um das systemdefinierte Padding abzurufen und bei der Berechnung der Anzahl der Zellen zu berücksichtigen, die dem Widget zugewiesen werden sollen.

Rechtschreibprüfung

  • Bei Apps, die auf Rechtschreibdienste zugreifen, werden mit einer neuen cancel()-Methode alle ausstehenden und laufenden Rechtschreibaufgaben in einer Sitzung abgebrochen.
  • Für Dienste zur Rechtschreibprüfung können mit dem neuen Vorschlagsflag RESULT_ATTR_HAS_RECOMMENDED_SUGGESTIONS Vorschläge mit höherer Wahrscheinlichkeit von Vorschlägen mit geringerer Wahrscheinlichkeit unterschieden werden. Beispielsweise könnte ein Rechtschreibprüfprogramm die Markierung setzen, wenn ein eingegebenes Wort nicht im Nutzerwörterbuch enthalten ist, aber wahrscheinliche Vorschläge enthält. Andernfalls wird die Markierung nicht gesetzt.

    In Verbindung mit der Rechtschreibprüfung können Apps 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 gekennzeichnet und Vorschläge gemacht werden sollen.

  • Ein neuer FLAG_AUTO_CORRECTION-Stil für Textbereiche gibt an, dass die automatische Korrektur auf ein Wort/einen Text angewendet werden soll, das bzw. den der Nutzer gerade eingibt. Diese Art von Vorschlag wird anders dargestellt, um anzuzeigen, dass die automatische Korrektur aktiv ist.

Bluetooth

Mit den neuen öffentlichen Methoden fetchUuidsWithSdp() und getUuids() können Apps die Funktionen (UUIDs) ermitteln, die von einem Remotegerät unterstützt werden. Bei fetchUuidsWithSdp() führt das System eine Diensterkennung auf dem Remotegerät durch, um die unterstützten UUIDs abzurufen, und sendet das Ergebnis dann in einer ACTION_UUID-Intent.

UI-Toolkit

Mit den neuen Methoden setUserVisibleHint() und getUserVisibleHint() kann für ein Fragment angegeben werden, ob es derzeit für Nutzer sichtbar ist. Das System verschiebt den Start von Fragmenten, die für Nutzer nicht sichtbar sind, bis die Loader für sichtbare Fragmente ausgeführt wurden. Der Standardwert für den Sichtbarkeitshinweis ist „wahr“.

Grafik

Bedienungshilfen

  • Kunden von RemoteViews können jetzt die Methode setContentDescription() verwenden, um die Inhaltsbeschreibung einer beliebigen Ansicht im maximierten Layout festzulegen und abzurufen.
  • Mit den Methoden getMaxScrollX(), getMaxScrollY(), setMaxScrollX() und setMaxScrollY() können Apps den maximalen Scroll-Offset für ein AccessibilityRecord-Objekt abrufen und festlegen.
  • Wenn der Touch-Exploration-Modus aktiviert ist, gibt eine neue sichere EinstellungACCESSIBILITY_SPEAK_PASSWORD an, ob der Nutzer die IME auffordert, den in Passwortfeldern eingegebenen Text vorzulesen, auch wenn kein Headset verwendet wird. Standardmäßig wird kein Passworttext gesprochen, es sei denn, ein Headset wird verwendet.

Text-in-Sprache

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

Datenbank

  • Mit einer neuen CrossProcessCursorWrapper-Klasse können Contentanbieter Ergebnisse für eine prozessübergreifende Abfrage effizienter zurückgeben. Die neue Klasse ist ein nützlicher Baustein für Cursor, die an Remote-Prozesse gesendet werden. Außerdem können damit normale Cursor-Objekte transparent in CrossProcessCursor-Objekte umgewandelt werden.

    Mit der CrossProcessCursorWrapper-Klasse werden häufige Leistungsprobleme und Fehler behoben, die bei der Implementierung von Contentanbietern in Anwendungen auftreten.

  • Der Konstruktor von CursorWindow(java.lang.String) nimmt jetzt einen Namensstring als Eingabe. Das System unterscheidet nicht mehr zwischen lokalen und Remote-Cursorfenstern. CursorWindow(boolean) wird daher nicht mehr unterstützt.

Intents

Es werden neue Kategorien für das Targeting auf gängige Arten von Anwendungen auf dem Gerät hinzugefügt, z. B. CATEGORY_APP_BROWSER, CATEGORY_APP_CALENDAR und CATEGORY_APP_MAPS.

Kamera

Berechtigungen

Folgende Berechtigungen sind neu:

  • android.Manifest.permission#READ_SOCIAL_STREAM und android.Manifest.permission#WRITE_SOCIAL_STREAM: Ermöglicht es einem Synchronisierungsadapter, Social-Stream-Daten für einen Kontakt im freigegebenen Kontaktdatenanbieter zu lesen und zu schreiben.

Eine detaillierte Übersicht über alle API-Änderungen in Android 4.0.3 (API-Level 15) finden Sie im API-Unterschiedsbericht.

API-Level

Der Android 4.0.3 API wird eine Ganzzahl-ID zugewiesen – 15 –, die im System selbst gespeichert wird. Anhand dieser Kennung, der sogenannten API-Ebene, kann das System vor der Installation einer Anwendung korrekt feststellen, ob sie mit dem System kompatibel ist.

Wenn Sie in Ihrer App APIs verwenden möchten, die in Android 4.0.3 eingeführt wurden, müssen Sie die App für eine Android-Plattform kompilieren, die API-Ebene 15 oder höher unterstützt. Je nach Bedarf 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.