APIs unter Android 2.3.4

API-Ebene: 10

Android 2.3.4 (GINGERBREAD_MR1) ist ein Wartungsrelease, mit dem mehrere Fehlerkorrekturen und Patches zur Android 2.3-Plattform hinzugefügt werden, ohne dass im Vergleich zu Android 2.3.3 API-Änderungen erforderlich sind. Android 2.3.4 unterstützt außerdem die Open Accessory API auf Mobilgeräten über die optionale Open Accessory Library.

Für Entwickler ist die Android 2.3.4-Plattform als Komponente zum Herunterladen für das Android SDK verfügbar. Die herunterladbare Plattform umfasst eine Android-Bibliothek und ein System-Image sowie eine Reihe von Emulator-Skins und mehr. Wenn du mit dem Entwickeln oder Testen unter Android 2.3.4 beginnen möchtest, verwende den Android SDK Manager, um die Plattform in dein SDK herunterzuladen.

API-Übersicht

Android 2.3.4 bietet Anwendungen dieselbe Framework-API wie Android 2.3.3 (API-Ebene 10). Eine Zusammenfassung der API finden Sie in den Hinweisen zur Android 2.3.3-Version.

Zubehörbibliothek öffnen

Open Accessory (Offenes Zubehör) ist eine neue Funktion zur Integration verbundener Peripheriegeräte in Anwendungen, die auf der Plattform ausgeführt werden. Die Funktion basiert auf einem in die Plattform integrierten USB-Stack (Universal Serial Bus) und einer für Anwendungen zugänglichen API. Peripheriegeräte, die als Zubehör an Android-Geräte angeschlossen werden, werden als USB-Hosts verbunden.

Open Accessory wurde in Android 3.1 (API-Level 12) eingeführt, ist aber über eine optionale externe Bibliothek, die Open Accessory Library, auch auf Geräten mit Android 2.3.4 verfügbar. Die Bibliothek stellt eine Framework-API bereit, mit der Anwendungen verschiedene über USB verbundene Gerätetypen finden, mit ihnen kommunizieren und verwalten können. Außerdem wird die Implementierung der API für Teile der Android-Plattform bereitgestellt, die in Android 2.3.4 nicht direkt für Anwendungen freigegeben sind.

Die Open Accessory Library ist auf jedem Gerät optional. Gerätehersteller können entscheiden, ob die Open Accessory Library in ihre Produkte aufgenommen oder ausgeschlossen werden soll. Die Bibliothek ist mit Android 3.1 aufwärtskompatibel, sodass Anwendungen, die für Android 2.3.4 entwickelt wurden, auf Geräten mit Android 3.1 korrekt ausgeführt werden, sofern diese Geräte USB-Zubehör unterstützen.

Die von der Open Accessory Library bereitgestellte API basiert auf der Open Accessory API in Android 3.1. In den meisten Bereichen können Sie dieselben Techniken und APIs verwenden. Die Entwicklung für die Open Accessory Library unter Android 2.3.4 unterscheidet sich jedoch folgendermaßen von der standardmäßigen USB API:

  • UsbManager-Objekt abrufen: Wenn Sie bei Verwendung der Add-on-Bibliothek ein UsbManager-Objekt abrufen möchten, verwenden Sie die Hilfsmethode getInstance() anstelle von getSystemService(). Beispiel:

    Kotlin

    val manager = UsbManager.getInstance(this)
    

    Java

    UsbManager manager = UsbManager.getInstance(this);
    
  • UsbAccessory aus einem gefilterten Intent abrufen: Wenn Sie nach einem verbundenen Gerät oder Zubehör mit einem Intent-Filter filtern, ist das Objekt UsbAccessory im Intent enthalten, der an Ihre Anwendung übergeben wird. Wenn Sie die Add-on-Bibliothek verwenden, können Sie das UsbAccessory-Objekt so abrufen:

    Kotlin

    val accessory = UsbManager.getAccessory(intent)
    

    Java

    UsbAccessory accessory = UsbManager.getAccessory(intent)
    
  • Keine USB-Host-Unterstützung: Android 2.3.4 und die Open Accessory Library unterstützen den USB-Host-Modus nicht (z. B. über UsbDevice). Der USB-Host-Modus wird jedoch in Android 3.1 unterstützt. Ein Android-Gerät mit Android 2.3.4 kann nicht als USB-Host verwendet werden. Die Bibliothek ermöglicht es dem Android-Gerät, nur als Peripheriegerät zu funktionieren, wobei das verbundene Zubehör als USB-Host fungiert (über UsbAccessory).

Zum Entwickeln von Apps mit der Open Accessory Library ist Folgendes erforderlich:

  • Die neueste Version der Android SDK-Tools
  • Die neueste Version des Google APIs-Add-ons, einschließlich der Bibliothek selbst (für die Verknüpfung)
  • Ein echtes Hardwaregerät mit Android 2.3.4 (oder Android 3.1) und Unterstützung für USB-Zubehör für Laufzeittests mit verbundenen Geräten

Weitere Informationen zur Entwicklung von Anwendungen für die Interaktion mit USB-Zubehör finden Sie in der entsprechenden Entwicklerdokumentation.

Außerdem können Entwickler Filter bei Google Play anfordern, sodass ihre Apps nicht für Nutzer verfügbar sind, deren Geräte nicht die entsprechende Zubehörunterstützung bieten. Wenn Sie eine Filterung anfordern möchten, fügen Sie dem Anwendungsmanifest das folgende Element hinzu:

<uses-feature
  android:name="android.hardware.usb.accessory"
  android:required="true">

API-Ebene

Die Android 2.3.4-Plattform erhöht das API-Level nicht – sie verwendet dasselbe API-Level wie Android 2.3.3, API-Level 10.

Wenn Sie in Ihrer Anwendung APIs verwenden möchten, die in API-Level 10 eingeführt wurden, müssen Sie die Anwendung mit der Android-Bibliothek kompilieren, die in der neuesten Version des Google APIs Add-ons enthalten ist. Diese enthält auch die Open Accessory Library.

Je nach deinen Anforderungen musst du dem Element <uses-sdk> im Manifest der Anwendung möglicherweise auch ein android:minSdkVersion="10"-Attribut hinzufügen. Wenn Ihre Anwendung nur für Android 2.3.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 das API-Level?