Poziom API: 10
Android 2.3.3 (GINGERBREAD_MR1
) to niewielka wersja funkcji dodająca do platformy Androida 2.3 kilka ulepszeń i interfejsów API.
Dla programistów platforma Android 2.3.3 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.3, pobierz platformę do swojego pakietu SDK za pomocą Menedżera pakietów Android SDK.
Omówienie interfejsu API
Sekcje poniżej zawierają omówienie nowości dla programistów w wersji 2.3.3, w tym informacje o nowych funkcjach i zmianach wprowadzonych w interfejsie API platformy od poprzedniej wersji.
Komunikacja Near Field Communication (NFC)
Android 2.3.3 zapewnia lepszą i rozszerzoną obsługę NFC, by umożliwić aplikacjom interakcję z większą liczbą typów tagów na nowe sposoby.
Nowy, kompleksowy zestaw interfejsów API daje aplikacjom dostęp z uprawnieniami do odczytu i zapisu w większej gamie standardowych technologii tagów, w tym:
- NFC-A (ISO 14443-3A)
- NFC-B (ISO 14443-3B)
- NFC-F (JIS 6319-4)
- NFC-V (ISO 15693)
- ISO DEP (ISO 14443–4)
- Klasyczna MIFARE
- MIFARE Ultralekkie
- Tagi NDEF forum NFC
Platforma ta zapewnia również ograniczony protokół komunikacji peer-to-peer oraz interfejs API. Działania na pierwszym planie mogą używać interfejsu API do rejestrowania komunikatu NDEF, który zostanie przekazany na inne urządzenia NFC, gdy się połączą.
Zaawansowane wysyłanie tagów daje aplikacjom większą kontrolę nad tym, jak i kiedy są uruchamiane, gdy zostanie wykryty tag NFC. Wcześniej platforma wykorzystywała jednoetapowe wysyłanie intencji, które powiadamiało zainteresowane aplikacje o wykryciu tagu. Platforma korzysta teraz z 4-etapowego procesu, który umożliwia aplikacji na pierwszym planie przejęcie kontroli nad zdarzeniem tagu, zanim zostanie ono przekazane do innych aplikacji (android.nfc.NfcAdapter.enableForegroundDispatch()
).
Nowy proces wysyłania umożliwia również aplikacjom nasłuchiwanie określonych treści tagów i technologii tagowania na podstawie 2 nowych działań intencji: android.nfc.action.NDEF_DISCOVERED
i android.nfc.action.TECH_DISCOVERED
.
Interfejs NFC API jest dostępny w pakietach android.nfc
i android.nfc.tech
. Klasy kluczy to:
NfcAdapter
, który reprezentuje sprzęt NFC urządzenia.NdefMessage
, który reprezentuje wiadomość z danymi NDEF, czyli standardowy format przesyłania danych między urządzeniami i tagami. Wiadomość NDEF określonych typów rekordów NDEF. Aplikacje mogą odbierać te komunikaty z intencjiNDEF_DISCOVERED
,TECH_DISCOVERED
lubTAG_DISCOVERED
.NdefRecord
, dostarczaną w elemencieNdefMessage
, który opisuje typ udostępnianych danych i przenosi je.Tag
, który reprezentuje tag zeskanowany przez urządzenie. Obsługiwanych jest wiele typów tagów w zależności od wykorzystywanej technologii tagów.TagTechnology
, czyli interfejs, który zapewnia aplikacjom dostęp do właściwości tagów i operacji wejścia-wyjścia na podstawie technologii stosowanych w tagu. Pełną listę technologii tagów obsługiwanych w Androidzie 2.3.3 znajdziesz na stronieandroid.nfc.tech
.
Komunikacja NFC bazuje na technologii bezprzewodowej w sprzęcie urządzenia i nie jest dostępna w przypadku niektórych urządzeń z Androidem. Urządzenia z Androidem, które nie obsługują NFC, po wywołaniu funkcji getDefaultAdapter(Context)
zwracają pusty obiekt, a context.getPackageManager().hasSystemFeature(PackageManager.FEATURE_NFC)
zwraca wartość false
. Interfejs NFC API jest jednak zawsze dostępny, niezależnie od obsługi sprzętu.
Aby korzystać z interfejsu NFC API, aplikacje muszą prosić użytkownika o zgodę, deklarując <uses-permission
android:name="android.permission.NFC">
w plikach manifestu.
Deweloperzy mogą też poprosić o filtrowanie w Google Play, tak aby ich aplikacje nie były widoczne dla użytkowników, których urządzenia nie obsługują NFC. Aby poprosić o filtrowanie, dodaj <uses-feature android:name="android.hardware.nfc"
android:required="true">
do pliku manifestu aplikacji.
Więcej informacji znajdziesz w przewodniku dla programistów NFC.
Bluetooth
Android 2.3.3 dodaje obsługę platformy i interfejsów API do połączeń z niezabezpieczonymi gniazdami Bluetooth. Pozwala to aplikacjom komunikować się z prostymi urządzeniami, które mogą nie oferować interfejsu użytkownika do uwierzytelniania. Więcej informacji znajdziesz w opisie createInsecureRfcommSocketToServiceRecord(java.util.UUID)
i listenUsingInsecureRfcommWithServiceRecord(java.lang.String, java.util.UUID)
.
Grafika
- Nowa klasa
BitmapRegionDecoder
umożliwia aplikacjom dekodowanie prostokątnego regionu z obrazu. Interfejs API jest szczególnie przydatny, gdy oryginalny obraz jest duży, a aplikacja potrzebuje tylko jego fragmentów. - Nowe pole
inPreferQualityOverSpeed
wBitmapFactory.Options
umożliwia aplikacjom używanie w dekodowaniu JPEG dokładniejszej, ale nieco wolniejszej metody IDCT. To z kolei poprawia jakość odtworzonego obrazu.
Struktura mediów
- Nowa klasa
MediaMetadataRetriever
udostępnia ujednolicony interfejs do pobierania ramek i metadanych z wejściowego pliku multimedialnego. MediaRecorder.AudioEncoder
iMediaRecorder.OutputFormat
zawierają nowe pola do określania formatów AMR i AAC.
Rozpoznawanie mowy
Interfejs API rozpoznawania mowy zawiera nowe stałe, które umożliwiają zarządzanie wynikami wyszukiwania głosowego na nowe sposoby. Mimo że nowe stałe nie są niezbędne do normalnego korzystania
z rozpoznawania mowy, mogą one posłużyć do zaproponowania innego widoku wyników wyszukiwania głosowego w swojej aplikacji. Więcej informacji: RecognizerResultsIntent
.
Poziom API
Platforma Android 2.3.3 udostępnia zaktualizowaną wersję interfejsu API platformy. Do interfejsu API Androida 2.3.3 jest przypisany identyfikator całkowity (10), który jest przechowywany w samym systemie. Ten identyfikator, nazywany „poziomem interfejsu API”, pozwala systemowi przed jej zainstalowaniem prawidłowo określić, czy aplikacja jest z nim zgodna.
Aby korzystać z interfejsów API wprowadzonych w Androidzie 2.3.3, należy skompilować aplikację do biblioteki Androida udostępnianej na platformie SDK Androida 2.3.3. 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 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.