APIs unter Android 2.3.3

API-Ebene: 10

Android 2.3.3 (GINGERBREAD_MR1) ist eine kleine Funktionsversion, die der Android 2.3-Plattform mehrere Verbesserungen und APIs hinzufügt.

Für Entwickler ist die Android 2.3.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 2.3.3 beginnen möchten, laden Sie die Plattform mit dem Android SDK Manager in Ihr SDK herunter.

API-Übersicht

In den folgenden Abschnitten finden Sie einen technischen Überblick über die Neuigkeiten für Entwickler in 2.3.3, einschließlich neuer Funktionen und Änderungen an der Framework-API seit der vorherigen Version.

Nahfeldkommunikation (NFC)

Android 2.3.3 bietet eine verbesserte und erweiterte Unterstützung für NFC, damit Anwendungen auf neue Weise mit mehr Arten von Tags interagieren können.

Eine neue, umfassende Reihe von APIs bietet Anwendungen Lese- und Schreibzugriff auf eine größere Auswahl an Standard-Tag-Technologien, darunter:

  • NFC-A (ISO 14443-3A)
  • NFC-B (ISO 14443-3B)
  • NFC-F (JIS 6319-4)
  • NFC-V (ISO 15693)
  • ISO-DEP (ISO 14443-4)
  • MIFARE Classic
  • MIFARE Ultralight
  • NFC Forum-NDEF-Tags

Die Plattform bietet außerdem ein eingeschränktes Peer-to-Peer-Kommunikationsprotokoll und eine API. Bei Aktivitäten im Vordergrund kann die API verwendet werden, um eine NDEF-Nachricht zu registrieren, die an andere NFC-Geräte gesendet wird, wenn eine Verbindung hergestellt wird.

Durch die erweiterte Tag-Auslieferung haben Apps jetzt mehr Kontrolle darüber, wie und wann sie gestartet werden, wenn ein NFC-Tag erkannt wird. Bisher wurde auf der Plattform ein Intent-Dispatch in einem Schritt verwendet, um interessierte Anwendungen darüber zu informieren, dass ein Tag gefunden wurde. Die Plattform verwendet jetzt einen vierstufigen Prozess, mit dem die Anwendung im Vordergrund ein Tag-Ereignis übernehmen kann, bevor es an andere Anwendungen übergeben wird (android.nfc.NfcAdapter.enableForegroundDispatch()). Mit dem neuen Dispatch-Prozess können Apps auch anhand von zwei neuen Intent-Aktionen – android.nfc.action.NDEF_DISCOVERED und android.nfc.action.TECH_DISCOVERED – auf bestimmte Tag-Inhalte und Tag-Technologien achten.

Die NFC API ist in den Paketen android.nfc und android.nfc.tech verfügbar. Die wichtigsten Klassen sind:

  • NfcAdapter, die die NFC-Hardware auf dem Gerät darstellt.
  • NdefMessage, eine NDEF-Datennachricht, das Standardformat, in dem Datenträger zwischen Geräten und Tags übertragen werden. Eine NDEF-Nachricht enthält viele NDEF-Einträge verschiedener Typen. Anwendungen können diese Nachrichten von NDEF_DISCOVERED-, TECH_DISCOVERED- oder TAG_DISCOVERED-Intents empfangen.
  • NdefRecord, die in einem NdefMessage gesendet werden, das die Art der freigegebenen Daten beschreibt und die Daten selbst enthält.
  • Tag, das ein vom Gerät gescanntes Tag darstellt. Je nach zugrunde liegender Tag-Technologie werden mehrere Tag-Typen unterstützt.
  • TagTechnology: eine Schnittstelle, die Anwendungen Zugriff auf Tag-Attribute und E/A-Vorgänge basierend auf den im Tag vorhandenen Technologien gewährt. Eine vollständige Liste der in Android 2.3.3 unterstützten Tag-Technologien finden Sie unter android.nfc.tech.

Die NFC-Kommunikation basiert auf der drahtlosen Technologie in der Gerätehardware und ist nicht auf allen Android-Geräten verfügbar. Auf Android-Geräten, die NFC nicht unterstützen, wird beim Aufruf von getDefaultAdapter(Context) ein Nullobjekt zurückgegeben. context.getPackageManager().hasSystemFeature(PackageManager.FEATURE_NFC) gibt dann false zurück. Die NFC API ist jedoch immer vorhanden, unabhängig von der zugrunde liegenden Hardwareunterstützung.

Wenn Sie die NFC API verwenden möchten, müssen Apps die Berechtigung des Nutzers anfordern, indem sie <uses-permission android:name="android.permission.NFC"> in ihren Manifestdateien deklarieren.

Außerdem können Entwickler eine Filterung bei Google Play anfordern, damit ihre Apps für Nutzer, deren Geräte NFC nicht unterstützen, nicht sichtbar sind. Wenn Sie das Filtern anfordern möchten, fügen Sie dem Manifest der Anwendung <uses-feature android:name="android.hardware.nfc" android:required="true"> hinzu.

Weitere Informationen finden Sie im Entwicklerleitfaden für NFC.

Bluetooth

Android 2.3.3 bietet Plattform- und API-Unterstützung für nicht sichere Bluetooth-Socket-Verbindungen. So können Anwendungen mit einfachen Geräten kommunizieren, die möglicherweise keine Benutzeroberfläche für die Authentifizierung bieten. Weitere Informationen finden Sie unter createInsecureRfcommSocketToServiceRecord(java.util.UUID) und listenUsingInsecureRfcommWithServiceRecord(java.lang.String, java.util.UUID).

Grafik

  • Mit einer neuen BitmapRegionDecoder-Klasse können Anwendungen einen rechteckigen Bereich aus einem Bild decodieren. Die API ist besonders nützlich, wenn ein Originalbild groß ist und für die Anwendung nur Teile des Bildes benötigt werden.
  • Mit einem neuen inPreferQualityOverSpeed-Feld in BitmapFactory.Options können Anwendungen bei der JPEG-Dekodierung eine genauere, aber etwas langsamere IDCT-Methode verwenden. Dies wiederum verbessert die Qualität des rekonstruierten Bildes.

Medien-Framework

Spracherkennung

Die Spracherkennungs-API enthält neue Konstanten, mit denen Sie Sprachsuchergebnisse auf neue Weise verwalten können. Die neuen Konstanten sind für die normale Nutzung der Spracherkennung zwar nicht erforderlich, Sie können sie aber verwenden, um in Ihrer Anwendung eine andere Ansicht der Sprachsuchergebnisse anzubieten. Weitere Informationen finden Sie unter RecognizerResultsIntent.

API-Level

Die Android 2.3.3-Plattform bietet eine aktualisierte Version der Framework API. Der Android 2.3.3 API wird eine Ganzzahl-ID zugewiesen, die im System selbst gespeichert wird: 10. 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 2.3.3 eingeführt wurden, müssen Sie die App mit der Android-Bibliothek kompilieren, die in der SDK-Plattform von Android 2.3.3 bereitgestellt wird. Je nach Bedarf müssen Sie dem <uses-sdk>-Element im Manifest der Anwendung möglicherweise auch ein android:minSdkVersion="10"-Attribut hinzufügen. Wenn Ihre Anwendung nur für Android 2.3 und höher entwickelt wurde, wird durch die Deklaration des Attributs verhindert, dass die Anwendung auf früheren Versionen der Plattform installiert wird.

Weitere Informationen finden Sie unter Was ist die API-Ebene?