Poziom interfejsu API: 10
Android 2.3.4 (GINGERBREAD_MR1
) to wersja serwisowa, która zawiera kilka poprawek błędów i łatek do platformy Android 2.3. Nie wprowadza żadnych zmian w interfejsie API w stosunku do wersji Android 2.3.3. Oprócz tego Android 2.3.4 obsługuje na urządzeniach mobilnych interfejs Open Accessory API dzięki opcjonalnej otwartej biblioteki akcesoriów.
Dla programistów platforma Android 2.3.4 jest dostępna jako komponent do pobrania dla Android SDK. Platforma do pobrania zawiera bibliotekę i obraz systemu Androida, a także zestaw skórek do emulatora i inne elementy. Aby rozpocząć tworzenie lub testowanie aplikacji na Androida w wersji 2.3.4, użyj Menedżera pakietu Android SDK, aby pobrać platformę do swojego pakietu SDK.
Omówienie interfejsu API
Android 2.3.4 udostępnia aplikacjom tę samą platformę API co Android 2.3.3 (poziom API 10). Podsumowanie interfejsu API znajdziesz w notatkach do wersji 2.3.3 Androida.
Otwórz Bibliotekę akcesoriów
Open Accessory to nowa funkcja, która umożliwia integrowanie połączonych urządzeń peryferyjnych z aplikacjami działającymi na platformie. Ta funkcja opiera się na stosie USB (uniwersalna magistrala szeregowa) wbudowanym w platformę i interfejsie API udostępnianym aplikacjom. Urządzenia peryferyjne podłączane do urządzeń z Androidem jako akcesoria łączą się jako hosty USB.
Funkcja Open Accessory została wprowadzona w Androidzie 3.1 (poziom interfejsu API 12), ale jest dostępna dla urządzeń z Androidem 2.3.4 przez opcjonalną bibliotekę zewnętrzną – Open Accessory Library. Biblioteka udostępnia interfejs API platformy, który umożliwia aplikacjom wykrywanie różnych typów urządzeń połączonych przez USB, komunikowanie się z nimi i zarządzanie nimi. Zapewnia również wdrożenie interfejsu API w przypadku części platformy Androida, które nie są bezpośrednio dostępne dla aplikacji w Androidzie 2.3.4.
Biblioteka otwartych akcesoriów jest opcjonalna na każdym urządzeniu. Producenci urządzeń mogą zdecydować, czy chcą uwzględnić Otwartą Bibliotekę Akcesoriów w swoich produktach, czy też nie. Biblioteka jest zgodna z Androidem 3.1, więc aplikacje opracowane pod kątem Androida 2.3.4 będą prawidłowo działać na urządzeniach z Androidem 3.1, jeśli te urządzenia obsługują akcesoria USB.
Interfejs API udostępniany przez bibliotekę Open Accessory Library jest oparty na interfejsie API Open Accessory udostępnianym w Androidzie 3.1. W większości obszarów możesz korzystać z tych samych technik i interfejsów API. Programowanie na potrzeby Open Accessory Library na Androida 2.3.4 różni się jednak od standardowego interfejsu USB API w następujący sposób:
- Uzyskiwanie obiektu
UsbManager
– aby uzyskać obiektUsbManager
przy użyciu biblioteki dodatku, użyj metody pomocniczejgetInstance()
, a niegetSystemService()
. Na przykład:Kotlin
val manager = UsbManager.getInstance(this)
Java
UsbManager manager = UsbManager.getInstance(this);
- Pobieranie obiektu
UsbAccessory
z odfiltrowanej intencji – gdy filtrujesz pod kątem podłączonego urządzenia lub akcesorium za pomocą filtra intencji, obiektUsbAccessory
jest zawarty w intencji przekazywanej do aplikacji. Jeśli korzystasz z biblioteki dodatków, możesz pobrać obiektUsbAccessory
w ten sposób:Kotlin
val accessory = UsbManager.getAccessory(intent)
Java
UsbAccessory accessory = UsbManager.getAccessory(intent)
- Brak obsługi hostów USB – Android 2.3.4 i Open Accessory Library nie obsługują trybu hosta USB (np.
UsbDevice
), choć tryb hosta USB jest obsługiwany w Androidzie 3.1. Urządzenie z Androidem w wersji 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 (poprzezUsbAccessory
).
Aby tworzyć aplikacje korzystające z Open Accessory Library, musisz mieć:
- Najnowsza wersja narzędzi Android SDK
- Najnowsza wersja dodatku do interfejsów API Google, która zawiera samą bibliotekę (do łączenia kont)
- rzeczywiste urządzenie sprzętowe z Androidem 2.3.4 (lub Androidem 3.1) z obsługą urządzeń peryferyjnych USB do testowania w czasie działania na podłączonych urządzeniach.
Szczegółowe informacje o tworzeniu aplikacji korzystających z akcesoriów USB znajdziesz w odpowiedniej dokumentacji dla programistów.
Deweloperzy mogą też poprosić o filtrowanie w Google Play, tak aby 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 do pliku manifestu aplikacji element:
<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 interfejsu API co Android 2.3.3 (poziom API 10).
Aby korzystać w aplikacji z interfejsów API wprowadzonych w interfejsie API poziomu 10, musisz skompilować aplikację z biblioteką Androida, która jest dostępna w najnowszej wersji dodatku do interfejsów API Google, która zawiera też bibliotekę OpenAccessory.
W zależności od potrzeb możesz też dodać atrybut android:minSdkVersion="10"
do elementu <uses-sdk>
w pliku manifestu aplikacji. Jeśli Twoja aplikacja jest przeznaczona do działania tylko na Androidzie 2.3.3 lub nowszym, zadeklarowanie tego atrybutu uniemożliwi jej instalację na starszych wersjach tej platformy.
Więcej informacji znajdziesz w artykule Co to jest poziom interfejsu API?