Interfejsy API Androida 2.3.4

Poziom API: 10

Android 2.3.4 (GINGERBREAD_MR1) to wersja serwisowa, która dodaje kilka poprawek błędów i poprawek do platformy Android 2.3 bez wprowadzania zmian w interfejsie API w stosunku do Androida 2.3.3. Oprócz tego Android 2.3.4 zapewnia obsługę interfejsu Open Accessory API na urządzeniach mobilnych dzięki opcjonalnej bibliotece Open Accessory.

Dla programistów platforma Android 2.3.4 jest dostępna jako komponent pakietu Android SDK, który można pobrać. Platforma do pobrania zawiera bibliotekę Androida i obraz systemu, a także zestaw skórek emulatorów. Aby zacząć programować lub testować Androida w wersji 2.3.4, pobierz platformę do swojego pakietu SDK za pomocą Menedżera pakietów Android SDK.

Omówienie interfejsu API

Android 2.3.4 zapewnia aplikacjom ten sam interfejs API co Android 2.3.3 (poziom API 10). Podsumowanie działania interfejsu API znajdziesz w informacjach o wersji Androida 2.3.3.

Otwórz bibliotekę akcesoriów

Open Accessory to nowa funkcja integracji połączonych urządzeń peryferyjnych z aplikacjami działającymi na platformie. Możliwości te opierają się na wbudowanym w platformie stosie USB (Universal Serial Bus) i interfejsie API dostępnym dla aplikacji. Urządzenia peryferyjne podłączane do urządzeń z Androidem w ramach akcesoriów podłączanych jako hosty USB.

Akcesoria Open Accessory zostały wprowadzone w Androidzie 3.1 (poziom interfejsu API 12), ale są dostępne na urządzeniach z Androidem 2.3.4 za pomocą opcjonalnej biblioteki zewnętrznej – Open Accessory Library. Biblioteka udostępnia interfejs API platformy, który pozwala aplikacjom wykrywać różne typy urządzeń połączonych przez USB, komunikować się z nimi i nimi zarządzać. Zapewnia też implementację interfejsu API w elementach platformy Androida, które nie są bezpośrednio dostępne dla aplikacji na Androida 2.3.4.

Otwarta biblioteka akcesoriów jest opcjonalna na każdym urządzeniu. Producenci urządzeń mogą zdecydować, czy uwzględnić w swoich produktach otwartą bibliotekę akcesoriów, czy ją wykluczyć. Biblioteka jest zgodna z Androidem 3.1, więc aplikacje na Androida w wersji 2.3.4 będą działać prawidłowo na urządzeniach z Androidem 3.1, o ile obsługują akcesoria USB.

Interfejs API udostępniany przez bibliotekę Open Accessory jest oparty na interfejsie Open Accessory API w Androidzie 3.1. W większości obszarów można używać tych samych metod i interfejsów API. Jednak tworzenie biblioteki Open Accessory Library na Androidzie 2.3.4 różni się od standardowego interfejsu USB API tym, że:

  • Uzyskiwanie obiektu UsbManager – aby uzyskać obiekt UsbManager przy użyciu biblioteki dodatków, użyj metody pomocniczej getInstance() zamiast getSystemService(). Na przykład:

    Kotlin

    val manager = UsbManager.getInstance(this)
    

    Java

    UsbManager manager = UsbManager.getInstance(this);
    
  • Uzyskiwanie UsbAccessory z intencji filtrowanej – gdy filtrujesz połączone urządzenie lub akcesorium za pomocą filtra intencji, obiekt UsbAccessory jest zawarty w intencji przekazywanej do aplikacji. Jeśli korzystasz z biblioteki dodatków, możesz pobrać obiekt UsbAccessory w taki sposób:

    Kotlin

    val accessory = UsbManager.getAccessory(intent)
    

    Java

    UsbAccessory accessory = UsbManager.getAccessory(intent)
    
  • Brak obsługi hosta USB – Android 2.3.4 i otwarta biblioteka akcesoriów nie obsługują trybu hosta USB (np. przez UsbDevice), chociaż tryb hosta USB jest obsługiwany w Androidzie 3.1. Urządzenie z Androidem 2.3.4 nie może działać jako host USB. Biblioteka umożliwia urządzeniu z Androidem działanie tylko jako urządzenie peryferyjne, a podłączone akcesorium działa jako host USB (przez UsbAccessory).

Aby tworzyć aplikacje przy użyciu otwartej biblioteki akcesoriów, musisz mieć:

  • Najnowsza wersja narzędzi Android SDK
  • Najnowsza wersja dodatku Google API, która zawiera samą bibliotekę (do tworzenia linków)
  • rzeczywiste urządzenie z Androidem 2.3.4 (lub Androidem 3.1) i obsługą akcesoriów USB – do testowania w czasie działania na połączonych urządzeniach,

Pełne omówienie tworzenia aplikacji korzystających z akcesoriów USB znajdziesz w odpowiedniej dokumentacji dla programistów.

Dodatkowo deweloperzy mogą poprosić o filtrowanie w Google Play, by ich aplikacje nie były dostępne dla użytkowników, których urządzenia nie obsługują odpowiednich akcesoriów. Aby poprosić o filtrowanie, dodaj poniższy element do pliku manifestu aplikacji:

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

Poziom API

Platforma Android 2.3.4 nie zwiększa poziomu interfejsu API – korzysta z tego samego poziomu API co Android 2.3.3 (poziom API 10).

Aby korzystać z interfejsów API wprowadzonych w interfejsie API na poziomie 10, musisz skompilować aplikację z biblioteką Androida dostępną w najnowszej wersji dodatku Google APIs, która zawiera również bibliotekę OpenAccessory.

W zależności od potrzeb może być też konieczne dodanie atrybutu android:minSdkVersion="10" do elementu <uses-sdk> w pliku manifestu aplikacji. Jeśli Twoja aplikacja jest przeznaczona do działania wyłącznie na Androidzie 2.3.3 lub nowszym, zadeklarowanie tego atrybutu uniemożliwia jej zainstalowanie we wcześniejszych wersjach platformy.

Więcej informacji znajdziesz w artykule Co to jest poziom interfejsu API.