Interfejsy API Androida 2.3.3

Poziom interfejsu API: 10

Android 2.3.3 (GINGERBREAD_MR1) to niewielka aktualizacja funkcji, która wprowadza kilka ulepszeń i interfejsy API na platformę Android 2.3.

Dla deweloperów platforma Android 2.3.3 jest dostępna jako komponent do pobrania w pakiecie Android SDK. Platforma do pobrania zawiera bibliotekę Androida i obraz systemu, a także zestaw skórek emulatora i inne elementy. Aby rozpocząć tworzenie lub testowanie aplikacji na Androida w wersji 2.3.3, użyj Menedżera pakietu Android SDK, aby pobrać platformę do swojego pakietu SDK.

Omówienie interfejsu API

W poniższych sekcjach znajdziesz techniczny przegląd nowości dla programistów w wersji 2.3.3, w tym nowe funkcje i zmiany w interfejsie API frameworku od poprzedniej wersji.

komunikacja Near Field Communication (NFC);

Android 2.3.3 zapewnia lepszą i rozszerzoną obsługę komunikacji NFC, aby umożliwić aplikacjom interakcję z większą liczbą typów tagów w nowy sposób.

Nowy, kompleksowy zestaw interfejsów API daje aplikacjom dostęp do odczytu i zapisu do szerszego zakresu 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)
  • MIFARE Classic
  • MIFARE Ultralight
  • Tagi NDEF NFC Forum

Platforma udostępnia też ograniczony protokół komunikacji peer-to-peer i interfejs API. Aktywności na pierwszym planie mogą używać interfejsu API do rejestrowania wiadomości NDEF, które będą wysyłane na inne urządzenia NFC po nawiązaniu połączenia.

Zaawansowane rozsyłanie tagów daje aplikacjom większą kontrolę nad tym, jak i kiedy są uruchamiane po wykryciu tagu NFC. Wcześniej platforma używała jednoetapowego rozsyłania intencji, aby powiadomić zainteresowane aplikacje o wykrytym tagu. Platforma korzysta teraz z 4-etapowego procesu, który umożliwia aplikacji na pierwszym planie przejęcie kontroli nad zdarzeniem tagu przed jego przekazaniem do innych aplikacji (android.nfc.NfcAdapter.enableForegroundDispatch()). Nowy proces rozsyłania umożliwia też aplikacjom nasłuchiwanie określonych treści tagu i technologii tagów na podstawie 2 nowych działań intencyjnych: android.nfc.action.NDEF_DISCOVEREDandroid.nfc.action.TECH_DISCOVERED.

Interfejs NFC API jest dostępny w pakietach android.nfcandroid.nfc.tech. Najważniejsze klasy to:

  • NfcAdapter, który reprezentuje sprzęt NFC na urządzeniu.
  • NdefMessage, który reprezentuje wiadomość danych NDEF, czyli standardowy format, w którym „rekordy” zawierające dane są przesyłane między urządzeniami i etykietami. Wiadomość NDEF zawiera wiele rekordów NDEF różnych typów. Aplikacje mogą otrzymywać te wiadomości z NDEF_DISCOVERED, TECH_DISCOVERED lub TAG_DISCOVERED intencji.
  • NdefRecord, dostarczane w ramach NdefMessage, które opisuje typ udostępnianych danych i przenosi same dane.
  • Tag, który reprezentuje tag zeskanowany przez urządzenie. Obsługiwane są różne typy tagów, zależnie od technologii tagowania.
  • TagTechnology – interfejs, który zapewnia aplikacjom dostęp do właściwości tagu i operacji wejścia/wyjścia na podstawie technologii zawartych w tagu. Pełną listę technologii tagów obsługiwanych w Androidzie 2.3.3 znajdziesz w artykule android.nfc.tech.

Komunikacja NFC opiera się na technologii bezprzewodowej w sprzęcie urządzenia i nie jest dostępna na wszystkich urządzeniach z Androidem. Urządzenia z Androidem, które nie obsługują NFC, zwracają obiekt null, gdy wywołana zostanie funkcja getDefaultAdapter(Context), a funkcja 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 używać interfejsu NFC API, aplikacje muszą poprosić użytkownika o zezwolenie, deklarując <uses-permission android:name="android.permission.NFC"> w plikach manifestu.

Deweloperzy mogą też poprosić o filtrowanie w Google Play, 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 dotyczącym technologii NFC.

Bluetooth

Android 2.3.3 dodaje obsługę platformy i interfejsu API dla niezabezpieczonych połączeń socketowych Bluetooth. Dzięki temu aplikacje mogą komunikować się z prostymi urządzeniami, które nie oferują interfejsu użytkownika do uwierzytelniania. Więcej informacji znajdziesz w artykułach createInsecureRfcommSocketToServiceRecord(java.util.UUID)listenUsingInsecureRfcommWithServiceRecord(java.lang.String, java.util.UUID).

Grafika

  • Nowa klasa BitmapRegionDecoder umożliwia aplikacjom dekodowanie prostokątnego obszaru obrazu. Interfejs API jest szczególnie przydatny, gdy oryginalny obraz jest duży, a aplikacja potrzebuje tylko części obrazu.
  • Nowe pole inPreferQualityOverSpeed w ustawieniu BitmapFactory.Options pozwala aplikacjom używać do dekodowania JPEG dokładniejszej, ale nieco wolniejszej metody IDCT. To z kolei poprawia jakość odtworzonego obrazu.

Platforma mediów

Rozpoznawanie mowy

Interfejs API rozpoznawania mowy zawiera nowe stałe, które umożliwiają zarządzanie wynikami wyszukiwania głosowego na nowe sposoby. Chociaż nowe stałe nie są potrzebne do normalnego korzystania z rozpoznawania mowy, możesz ich użyć, aby w aplikacji wyświetlać wyniki wyszukiwania głosowego w inny sposób. Więcej informacji znajdziesz w artykule RecognizerResultsIntent.

Poziom interfejsu API

Platforma Android 2.3.3 udostępnia zaktualizowaną wersję interfejsu API frameworku. Interfejs API Androida 2.3.3 ma przypisany identyfikator całkowity 10, który jest przechowywany w samym systemie. Ten identyfikator, zwany „poziomem interfejsu API”, umożliwia systemowi prawidłowe określenie, czy aplikacja jest zgodna z systemem, zanim zostanie zainstalowana.

Aby używać w swojej aplikacji interfejsów API wprowadzonych w Androidzie 2.3.3, musisz skompilować aplikację z użyciem biblioteki Androida dostępnej w pakiecie SDK Androida 2.3.3. 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 lub nowszym, zadeklarowanie tego atrybutu uniemożliwi jej instalację na starszych wersjach tej platformy.

Więcej informacji znajdziesz w artykule Co to jest poziom dostępu API?.