Poziom interfejsu API: 9
Dla deweloperów platforma Android 2.3 (GINGERBREAD
) jest dostępna jako komponent do pobrania w pakiecie Android SDK. Platforma do pobrania zawiera
biblioteki Androida i obraz systemu, a także zestaw skórek emulatora
i innych. Aby rozpocząć tworzenie lub testowanie aplikacji na Androida w wersji 2.3, użyj Menedżera pakietu Android SDK, aby pobrać platformę do swojego pakietu SDK.
Omówienie interfejsu API
Poniższe sekcje zawierają omówienie nowych funkcji dla programistów od strony technicznej w wersji 2.3, w tym nowych funkcji i zmian API.
VoIP oparty na protokole SIP
Platforma zawiera teraz pakiet protokołu SIP i interfejs API, który umożliwia programistom tworzenie aplikacji do telefonii internetowej. Dzięki temu interfejsowi API aplikacje mogą oferować funkcje połączeń głosowych bez konieczności zarządzania sesjami, komunikacją na poziomie transportu czy dźwiękiem – te kwestie są obsługiwane w sposób transparentny przez interfejs SIP API i usługi platformy.
Interfejs SIP API jest dostępny w: android.net.sip
pakietu SDK. Kluczowa klasa to SipManager
, której aplikacje używają do konfigurowania profili SIP i zarządzania nimi, a także do inicjowania i odbierania połączeń audio. Po nawiązaniu rozmowy głosowej aplikacje mogą ją wyciszać,
włączyć tryb głośnika, wysłać tony DTMF itd. Aplikacje mogą też używać funkcji SipManager
do tworzenia ogólnych połączeń SIP.
Stos SIP i usługi platformy są dostępne na urządzeniach w
według uznania producenta i powiązanego przewoźnika. Z tego powodu
aplikacje powinny używać metody isApiSupported()
, aby sprawdzić, czy obsługa SIP jest dostępna przed
przez udostępnianie użytkownikom funkcji nawiązywania połączeń.
Aby korzystać z interfejsu SIP API, aplikacje muszą poprosić użytkownika o uprawnienia, deklarując w plikach manifestu <uses-permission
android:name="android.permission.INTERNET">
i <uses-permission
android:name="android.permission.USE_SIP">
.
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 mają zainstalowanego pakietu SIP ani usług platformy. Aby poprosić o filtrowanie, dodaj do pliku manifestu aplikacji elementy <uses-feature
android:name="android.software.sip"
android:required="true">
i <uses-feature
android:name="android.software.sip.voip">
.
Więcej informacji znajdziesz w przewodniku dla programistów SIP.
komunikacja Near Field Communication (NFC);
Android 2.3 zawiera pakiet NFC i interfejs API, który umożliwia deweloperom odczytywanie tagów NDEF, które są wykrywane, gdy użytkownik dotyka urządzenia z NFC, aby oznaczać elementy wbudowane w naklejki, inteligentne plakaty, a nawet inne urządzenia.
Platforma zapewnia podstawowe usługi NFC, które działają z urządzeniem. wykrywają tagi, gdy znajdują się w zasięgu. Po wykryciu tagu parametr platforma powiadamia aplikacje, rozgłaszając intencję, dołączając do tagu tag Wiadomości NDEF do intencji jako dodatki. Aplikacje mogą tworzyć filtry intencji, aby rozpoznać i przetwarzać docelowe tagi i wiadomości. Na przykład po otrzymaniu tag według intencji, aplikacje wyodrębniają wiadomości NDEF, przechowują je i powiadamiają użytkownika ani obsługiwać ich w inny sposób.
Interfejs NFC API jest dostępny w pakiecie android.nfc
. Kluczowe klasy to:
NfcAdapter
, który reprezentuje sprzęt NFC na urządzeniu.NdefMessage
, który reprezentuje komunikat z danymi NDEF, standardowy format, w którym „rekordy” przesyłanie danych między urządzenia i tagi. Aplikacje mogą otrzymywać te wiadomości z intencjiACTION_TAG_DISCOVERED
.NdefRecord
, dostarczono wNdefMessage
, który opisuje typ udostępnianych danych będzie samodzielnie przenosić dane.
Komunikacja NFC wykorzystuje technologię bezprzewodową w sprzęcie urządzenia,
obsługę funkcji NFC tej platformy na określonych urządzeniach zależy od
ich producentów. Aby określić obsługę NFC na bieżącym urządzeniu, aplikacje mogą wywołać isEnabled()
, aby zapytać NfcAdapter
. Interfejs NFC API jest zawsze obecny,
niezależnie od obsługi sprzętu.
Aby używać interfejsu NFC API, aplikacje muszą prosić użytkownika o zgodę przez
zadeklarują <uses-permission
android:name="android.permission.NFC">
w plikach manifestu.
Deweloperzy mogą też poprosić o filtrowanie w Google Play,
ich aplikacje są niewidoczne 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.
Aby zobaczyć przykładową aplikację, która korzysta z interfejsu NFC API, zapoznaj się z artykułem NFCDemo.
Żyroskop i inne czujniki
Android 2.3 obsługuje platformę i interfejs API dla kilku nowych typów odczytów czujnika: żyroskopu, wektora obrotu, przyspieszenia liniowego, grawitacji i barometru. Deweloperzy mogą korzystać z nowych odczytów z czujników, aby tworzyć aplikacje, które reagują Dzięki temu możesz szybko i płynnie dostosowywać położenie i ruch urządzenia. Interfejs Sensor API zgłasza zmiany dotyczące żyroskopu i innych czujników, aby wyrazić zainteresowanie niezależnie od tego, czy działają one w ramach platformy aplikacji, czy w środowisku natywnym w kodzie.
Pamiętaj, że zestaw czujników sprzętowych dostępnych na danym urządzeniu zależy od producenta.
Deweloperzy mogą poprosić o filtrowanie w Google Play, aby określić,
aplikacji nie są widoczne dla użytkowników, których urządzenia nie oferują
żyroskopu. Aby to zrobić, dodaj <uses-feature
android:name="android.hardware.sensor.gyroscope"
android:required="true">
do pliku manifestu aplikacji.
Szczegółowe informacje o interfejsie API znajdziesz w artykule Sensor
.
Obsługa wielu kamer
Aplikacje mogą teraz korzystać z dowolnych aparatów dostępnych w urządzeniu,
zrobić zdjęcie lub nagrać film. Camera
pozwala
aplikacje i zapytania o liczbę dostępnych kamer oraz unikalne
cech każdego z nich.
- Nowe zajęcia w usłudze
Camera.CameraInfo
przechowują obraz z kamery charakterystyki pozycjonowania (orientacja, przód lub tył). - Nowe metody
getNumberOfCameras()
igetCameraInfo()
w klasieCamera
pozwalają aplikacjom na wysyłanie zapytań dotyczących dostępnych kamer i włączają aparat, którego potrzebują. - Nowa metoda
get()
pozwala aplikacje pobierająCamcorderProfile
dla konkretnej kamery. - Nowa wartość
getJpegEncodingQualityParameter()
umożliwia aplikacjom uzyskanie poziomu jakości zdjęć w przypadku konkretnego aparatu.
Przykładowy kod pozwalający uzyskać dostęp do przedniej kamery znajdziesz w pliku CameraPreview.java. w przykładowej aplikacji ApiDemos.
Interfejs Camera API umożliwia też:
- Nowe parametry aparatów, w tym odległość ostrzenia, tryb ostrości oraz
maks./minimalna liczba klatek na sekundę w podglądzie. Nowe
getFocusDistances()
,getPreviewFpsRange()
igetSupportedPreviewFpsRange()
do uzyskiwania parametrów kamery orazsetPreviewFpsRange()
do ustawiania liczby klatek na potrzeby podglądu.
Efekty dźwiękowe, które można mieszać
Platforma dodaje obsługę nowych efektów dźwiękowych na ścieżkę lub na całą ścieżkę dźwiękową, w tym wzmocnienia basów, wirtualizacji słuchawek, korekcji i pogłosu.
- Nowy pakiet
android.media.audiofx
udostępnia interfejs API do uzyskiwania dostępu do efektów dźwiękowych. - Nowa klasa
AudioEffect
jest klasą podstawową do sterowania efektami dźwiękowymi udostępnianymi przez platformę audio Androida. - Nowy identyfikator sesji audio, który umożliwia aplikacji powiązanie zestawu efektów dźwiękowych z instancją
AudioTrack
lubMediaPlayer
. - Nowy konstruktor klas
AudioTrack
, który pozwala utworzyć obiektAudioTrack
z określonym identyfikatorem sesji. Nowe metodyattachAuxEffect()
,getAudioSessionId()
isetAuxEffectSendLevel()
. - nowe metody
attachAuxEffect()
,getAudioSessionId()
,setAudioSessionId(int)
isetAuxEffectSendLevel()
oraz typy je obsługujące;
Przykładowy kod efektów dźwiękowych znajdziesz w pliku AudioFxDemo.java w aplikacji przykładowej ApiDemos.
Struktura reklamowa zapewnia też:
- Nowa obsługa tagu wysokości w metadanych EXIF w przypadku plików JPEG. Nowa metoda
Metoda
getAltitude()
do pobierz wartość tagu wysokości EXIF. - Nowa metoda
setOrientationHint()
pozwala aplikacji przekazaćMediaRecorder
orientację podczas nagrywania filmu.
Menedżer pobierania
Platforma zawiera nową usługę systemową DownloadManager
który obsługuje długotrwałe pobieranie przez HTTP. Aplikacje mogą poprosić o pobieranie identyfikatora URI do określonego pliku docelowego. DownloadManager
przeprowadzi pobieranie w tle, zajmując się interakcjami HTTP i powtarzając pobieranie po niepowodzeniach lub zmianach w połączeniu i ponownym uruchamianiu systemu.
- Aplikacje mogą pobierać instancję
DownloadManager
zajęcia, wywołując metodęgetSystemService(String)
i zaliczającDOWNLOAD_SERVICE
Aplikacje, które proszą o dostęp materiały pobierane za pomocą tego interfejsu API powinny zarejestrować odbiornik na potrzebyACTION_NOTIFICATION_CLICKED
, aby odpowiednio Gdy użytkownik kliknie uruchomiony plik do pobrania w powiadomieniu lub Interfejs pobierania. - Klasa
DownloadManager.Request
umożliwia należy podać wszystkie informacje niezbędne do przesłania prośby o jego ponowne pobranie, takie jak identyfikator URI żądania czy miejsce docelowe pobierania. Identyfikator URI żądania jest jedynym wymaganym parametrem. Pamiętaj, że domyślnym miejscem docelowym pobierania jest wolumin współdzielony, z którego system może usunąć plik, jeśli potrzebuje miejsca na potrzeby systemu. Dla: trwałą pamięć pobierania, określ miejsce docelowe pobierania w pamięci zewnętrznej (patrzsetDestinationUri(Uri)
). - Klasa
DownloadManager.Query
udostępnia metody, które pozwalają z zapytaniem aplikacji i filtrowaniem aktywnych pobrań.
StrictMode
Aby pomóc deweloperom w monitorowaniu i ulepszaniu wydajności aplikacji, platforma oferuje nową funkcję systemu o nazwie StrictMode
.
Gdy jest zaimplementowany w aplikacji, tryb ścisły wykrywa i powiadamia dewelopera o przypadkowej aktywności dysku lub sieci, która może obniżyć wydajność aplikacji, np. o działalność na głównym wątku aplikacji (gdzie są odbierane operacje interfejsu użytkownika i gdzie występują animacje).
Deweloperzy mogą oceniać problemy z wykorzystaniem sieci i dysków zgłaszane w StrictMode
i w razie potrzeby je poprawić, dzięki czemu wątek główny jest bardziej uniwersalny
co zapobiega wyświetlaniu użytkownikom okien błędów ANR.
StrictMode
to podstawowa klasa, która stanowi główną integrację z systemem i maszyną wirtualną. Klasa ta udostępnia wygodne metody do zarządzania wątkami i zasadami maszyn wirtualnych, które mają zastosowanie do instancji.StrictMode.ThreadPolicy
iStrictMode.VmPolicy
obsługują zdefiniowane przez Ciebie zasady oraz ich zastosowanie w maszynach wirtualnych.
Więcej informacji o tym, jak używać StrictMode do optymalizacji
aplikacji, zapoznaj się z dokumentacją zajęć i przykładowym kodem na stronie android.os.StrictMode
.
Platforma UI
- Obsługa nadmiernych przewijania
- Nowa obsługa przewijania w widżetach i widżetach na ekranie głównym. W przypadku widoków aplikacje mogą włączać i wyłączać przewijanie w górę w danym widoku, ustawiać tryb przewijania w górę, kontrolować odległość przewijania w górę i obsługiwać wyniki przewijania w górę.
- W widżetach aplikacje mogą kontrolować właściwości przewijania, takie jak animacja, sprężystość i odległość przewijania. Więcej informacji znajdziesz w artykułach
android.view.View
iandroid.widget.OverScroller
. - Interfejs
ViewConfiguration
udostępnia też metodygetScaledOverflingDistance()
igetScaledOverscrollDistance()
. - Nowe atrybuty
overScrollMode
,overScrollFooter
ioverScrollHeader
elementów<ListView>
do kontrolowania zachowania podczas przewijania.
- Obsługa filtrowania dotykowego
- Nowa obsługa filtrowania dotykiem, dzięki której aplikacja może ulepszać bezpieczeństwa Zdjęć, które dają dostęp do poufnych funkcji. Na przykład filtrowanie dotyku jest odpowiednie do zapewnienia bezpieczeństwa działań użytkownika, takich jak udzielenie zgody na dostęp, dokonanie zakupu lub kliknięcie reklamy. Szczegółowe informacje znajdziesz w artykule Wyświetlanie zajęć dokumentacji.
- nowy atrybut
filterTouchesWhenObscured
dla elementów widoku, , który określa, czy filtrować dotknięcia, gdy okno widoku jest zasłonięte w innym widocznym oknie. Gdy ustawisz wartość"true"
, widok nie będzie reagować na dotknięcia, gdy nad oknem widoku pojawi się powiadomienie, okno dialogowe lub inne okno. Więcej informacji znajdziesz w dokumentacji dotyczącej zabezpieczeń.
Przykładowy kod do filtrowania dotyku znajdziesz w pliku SecureView.java w przykładowej aplikacji ApiDemos.
- Ulepszone zarządzanie zdarzeniami
- Nowa klasa podstawowa dla zdarzeń wejściowych,
InputEvent
. Klasa udostępnia metody, które umożliwiają aplikacjom określenie znaczenia zdarzenia, na przykład przez wysłanie zapytania o urządzenie wejściowe, z którego pochodzi zdarzenie. KlasyKeyEvent
iMotionEvent
są podklasami klasyInputEvent
. - Nowa klasa podstawowa dla urządzeń wejściowych,
InputDevice
. klasa przechowuje informacje o możliwościach danego urządzenia wejściowego oraz udostępnia metody, które pozwalają aplikacjom określić sposób interpretowania zdarzeń urządzenia wejściowego.
- Nowa klasa podstawowa dla zdarzeń wejściowych,
- Ulepszone zdarzenia ruchu
- Interfejs API
MotionEvent
został rozszerzony o informacje „pointer ID”, które umożliwiają aplikacjom śledzenie pojedynczych palców podczas ich przesuwania w górę i w dół. Klasa dodaje różne metody, które umożliwiają aplikacji sprawne działanie w przypadku zdarzeń związanych z ruchu. - System wejściowy ma teraz logikę do generowania zdarzeń ruchu z nowymi informacjami o wskaźniku, syntetyzując identyfikatory w miarę dodawania nowych wskaźników. system osobno śledzi wiele identyfikatorów wskaźnika podczas zdarzenia ruchu. zapewnia odpowiednią ciągłość wskaźników przez ocenę odległości między ostatnim a następnym zestawem wskaźników.
- Interfejs API
- Elementy sterujące zaznaczaniem tekstu
- Nowa metoda
setComposingRegion
pozwala aplikacji oznaczyć części tekstu jako tworzącego tekst, z zachowaniem bieżącego stylu. MetodagetSelectedText
zwraca zaznaczony tekst do aplikacji. Metody są dostępne wBaseInputConnection
,InputConnection
iInputConnectionWrapper
. - Nowe:
textSelectHandle
,textSelectHandleLeft
,textSelectHandleRight
itextSelectHandleWindowStyle
dla elementów<TextView>
, by odnosić się do elementów narysowanych, które są służy do wyświetlania reklam zakotwiczonych zaznaczania tekstu oraz stylu elementów okno.
- Nowa metoda
- Zarządzanie aktywnością
- Funkcja
ActivityInfo
dodaje nowe stałe do zarządzania Orientacja aktywności:SCREEN_ORIENTATION_FULL_SENSOR
,SCREEN_ORIENTATION_REVERSE_LANDSCAPE
SCREEN_ORIENTATION_REVERSE_PORTRAIT
,SCREEN_ORIENTATION_SENSOR_LANDSCAPE
, orazSCREEN_ORIENTATION_SENSOR_PORTRAIT
. - Nowa stała
IMPORTANCE_PERCEPTIBLE
dla polaimportance
w tabeliActivityManager.RunningAppProcessInfo
. Wartość wskazuje, że określony proces jest uruchamiany jako coś, co uznaje się za jest aktywnie zauważalna dla użytkownika. Przykładem może być aplikacja odtwarzająca muzykę w tle. - Metoda Activity.setPersistent(boolean) do oznaczania Działanie jako trwałe zostało wycofane, a implementacja nie jest operacją w trybie zero.
- Funkcja
- Style tekstu i ikon powiadomień
- Nowe parametry
TextAppearance.StatusBar.EventContent
,TextAppearance.StatusBar.EventContent.Title
,TextAppearance.StatusBar.Icon
iTextAppearance.StatusBar.Title
do zarządzania stylem powiadomień.
- Nowe parametry
- Dodaje pozostałe metody OpenGL ES 2.0
glDrawElements()
iglVertexAttribPointer()
w zajęciachandroid.opengl.GLES20
. - Dodano obsługę formatu
YV12
pikseli, planar w formacie YCrCb 4:2:0. - Nowa klasa dostawcy
AlarmClock
do ustawiania alarmu lub obsługi alarmu. Dostawca zawiera intencjęACTION_SET_ALARM
czynności i dodatki, których można użyć do rozpoczęcia aktywności, aby ustawić nowy alarm w aplikacji budzika. Aplikacje, które chcą odbierać intencjęSET_ALARM
, powinny utworzyć działanie wymagające uprawnienia SET_ALARM. Aplikacje, które chcą utworzyć nowy alarm powinien używać wartościContext.startActivity()
, aby użytkownik mógł wybrać której aplikacji budzika chcesz użyć. MediaStore
obsługuje nowe działanie intencyjnePLAY_FROM_SEARCH
, które umożliwia aplikacji wyszukiwanie multimediów muzycznych i automatyczne odtwarzanie treści z wyników, gdy jest to możliwe. Na przykład aplikacja może wywołać ten zamiar w wyniku polecenia rozpoznawania głosu, aby odtwarzać muzykę.MediaStore
dodaje też nową flagęMEDIA_IGNORE_FILENAME
, która informuje media skaner do ignorowania multimediów w katalogu zawierającym ten plik i jego podkatalogach. Dzięki temu deweloperzy mogą uniknąć wyświetlania grafik w Galerii oraz zapobiec wyświetlaniu dźwięków i muzyki z aplikacji w aplikacji Muzyka.- Dostawca
Settings
dodaje nowe działania związane z aktywnościąAPPLICATION_DETAILS_SETTINGS
iMANAGE_ALL_APPLICATIONS_SETTINGS
, które umożliwiają aplikacji wyświetlanie szczegółów. dla konkretnej aplikacji lub po wyświetleniu ekranu Zarządzaj aplikacjami. - Dostawca
ContactsContract
dodaje rodzaj danychContactsContract.CommonDataKinds.SipAddress
, aby przechowywać adres SIP (telefonia internetowa) kontaktu. - Urządzenie
LocationManager
śledzi teraz aplikację żądań powodujących włączenie blokady uśpienia lub blokady Wi-Fi w zależności od tego,WorkSource
– klasa zarządzana przez system, która identyfikuje aplikacji.LocationManager
śledzi wszystkich klientów, którzy proszą o okresowe aktualizacje, i informuje o nich dostawców za pomocą parametruWorkSource
, gdy ustawia minimalne czasy aktualizacji. Dostawca lokalizacji sieci korzysta z funkcjiWorkSource
, aby śledzić blokady ekranu i blokady Wi-Fi inicjowane przez aplikację, i dodaje te informacje do raportu o korzystaniu z baterii w sekcji Zarządzanie aplikacjami. LocationManager
dodaje kilka nowych metod, które umożliwiają rejestrowi aktywności otrzymywanie okresowych lub jednorazowych aktualizacji lokalizacji na podstawie określonych kryteriów (patrz poniżej).- Nowa klasa
Criteria
umożliwia aplikacji określenie zestawu kryteriów wyboru dostawcy lokalizacji. Na przykład dostawcy mogą być uporządkowani według dokładności, zużycia energii, możliwości raportowania wysokości, prędkości i kierunku oraz kosztu. - Android 2.3 zawiera nowy typ pliku
StorageManager
, który obsługuje pliki OBB (Opaque Binary Blob). Chociaż obsługa plików OBB jest dostępna w Androidzie 2.3, narzędzia programistyczne do tworzenia i zarządzania plikami OBB będą dostępne dopiero na początku 2011 r. - Platforma Android 2.3 zapewnia oficjalne wsparcie dla urządzeń, które nie mają kart SD (chociaż oferuje partycję karty SD, gdy nie ma dostępnej fizycznej karty SD). Metoda wygodna (
isExternalStorageRemovable()
) pozwala aplikacjom czy dostępna jest fizyczna karta SD. - Nowe stałe do deklarowania funkcji sprzętu i oprogramowania. Zobacz listę w sekcji Nowe stałe cechy poniżej.
- Funkcja
PackageInfo
dodaje nowe polafirstInstallTime
ilastUpdateTime
, które zawierają godzinę instalacji pakietu i ostatniej aktualizacji. - Nowa metoda
getProviderInfo()
pobierania wszystkich znanych informacji o określoną klasę dostawcy treści. - Funkcja
TelephonyManager
dodaje stałąNETWORK_TYPE_EVDO_B
do określenia typu sieci CDMA EVDO Rev B. - Nowa metoda
getPsc()
zwraca główny kod kodowania komórki obsługującej w sieci UMTS. NativeActivity
to nowy typ klasy aktywności, którego Wywołania zwrotne cyklu życia są implementowane bezpośrednio w kodzie natywnym. O W systemie działaNativeActivity
i jego bazowy kod natywny tak samo jak inne aktywności, zwłaszcza na Androidzie. procesu systemowego aplikacji i jej wykonywania w głównym wątku UI aplikacji, i otrzymują te same wywołania zwrotne cyklu życia co inne aktywności.- Nowy interfejs klasy i wywołania zwrotnego
InputQueue
umożliwia natywny do zarządzania kolejkami zdarzeń w kodzie. - Nowy interfejs
SurfaceHolder.Callback2
umożliwia kod natywny zarządzaj elementemSurfaceHolder
. - Nowe metody
takeInputQueue
itakeSurface()
wWindow
umożliwiają zarządzanie kodem natywnym zdarzenia i platformy. dalvik.system
usuwa kilka klas, które zostały wcześniej wycofane.- Biblioteki podstawowe Dalvik:
- Nowe kolekcje:
ArrayDeque
,NavigableMap
,ConcurrentSkipListMap
,LinkedBlockingDeque
- Nowe narzędzia
Arrays
:binarySearch()
,copyOf()
,copyOfRange()
i inne. CookieManager
zaHttpURLConnection
.- Bardziej kompletne interfejsy API sieci:
InterfaceAddress
,NetworkInterface
iIDN
File
sterowanie odczytem i zapisemString.isEmpty()
Normalizer
iNormalizer.Form
- Ulepszone gniazda serwera
javax.net.ssl
.
- Nowe kolekcje:
- Nowy atrybut
xlargeScreens
dla elementu<supports-screens>
, który wskazuje, czy aplikacja obsługuje formaty z ekranem bardzo dużego rozmiaru. Więcej informacji znajdziesz w artykule Obsługa wielu ekranów. - Nowe wartości atrybutu
android:screenOrientation
elementu<activity>
:"reverseLandscape"
– Aktywność wymaga ekranu w orientacji poziomej, obróconego w przeciwnym kierunku niż normalna orientacja pozioma."reversePortrait"
– Aktywność ma mieć ekran w orientacji pionowej, obrócony w przeciwnym kierunku niż normalna orientacja pionowa."sensorLandscape"
– aktywność powinna mieć ekran w orientacji poziomej, ale może użyć czujnika, aby zmienić kierunek, w którym ekran jest skierowany."sensorPortrait"
– Aktywność powinna mieć ekran w orientacji pionowej, ale może użyć czujnika, aby zmienić kierunek, w którym ekran jest skierowany."fullSensor"
– orientacja jest określana przez fizyczny czujnik orientacji: wyświetlacz obraca się w zależności od tego, jak użytkownik porusza urządzeniem. Pozwala to na dowolną z 4 możliwych obrotów, niezależnie od wartości to zwykle działa (np. niektóre urządzenia nie korzystają z funkcji 180° ).
com.android.permission.SET_ALARM
– umożliwia aplikacji wysłanie intencji w celu ustawienia alarmu dla użytkownika. Aktywność, która obsługuje działanieSET_ALARM
w intencji, powinna wymagać tego uprawnienia.android.permission.USE_SIP
– umożliwia aplikacji korzystanie zSIP API
do wykonywania i odbierania połączeń przez internet.android.permission.NFC
– umożliwia aplikacji korzystanie z makraNFC API
, aby odczytywać tagi NFC.android.hardware.audio.low_latency
– aplikacja używa małego opóźnienia potoku audio na urządzeniu i jest wrażliwy na opóźnienia w dostarczaniu dźwięku, dane wyjściowe.android.hardware.camera.front
– aplikacja używa przedniej kamery na urządzeniu.android.hardware.nfc
— Aplikacja korzysta z funkcji radia NFC na urządzeniu.android.hardware.sensor.barometer
– aplikacja używa barometru urządzenia.android.hardware.sensor.gyroscope
– aplikacja używa czujnika żyroskopu urządzenia.android.software.sip
– aplikacja używa na urządzeniu interfejsu SIP API.android.software.sip.voip
– aplikacja korzysta na urządzeniu z usługi VoIP opartej na protokole SIP.android.hardware.touchscreen.multitouch.jazzhand
– aplikacja korzysta z zaawansowanych funkcji wielodotykowych na ekranie urządzenia, aby śledzić co najmniej 5 punktów niezależnie od siebie.
Ekrany bardzo duże
Platforma obsługuje teraz bardzo duże rozmiary ekranu, takie jak te, które można znaleźć na tabletach. Programiści mogą wskazać, że ich aplikacje
zaprojektowany z myślą o obsłudze bardzo dużych ekranów przez dodanie elementu <supports
screens ... android:xlargeScreens="true">
do pliku manifestu
. Aplikacje mogą używać nowego kwalifikatora zasobów, xlarge
, do oznaczania zasobów przeznaczonych do bardzo dużych ekranów. Szczegółowe informacje o obsługiwaniu bardzo dużych ekranów i innych rozmiarów znajdziesz w artykule Obsługa wielu ekranów.
Grafika
Dostawcy treści
Lokalizacja
Miejsce na dane
Menedżer pakietów
Połączenia telefoniczne
Dostęp natywny do cyklu życia aktywności i okienek
Android 2.3 udostępnia aplikacjom, które korzystają z kodu natywnego, szeroki zestaw interfejsów API. Klasy frameworka, które mogą być przydatne w takich aplikacjach:
Pełne informacje o pracy z kodem natywnym oraz o pobieraniu NDK znajdziesz na stronie NDK na Androida.
Środowisko wykonawcze Dalvik
Nowe elementy i atrybuty pliku manifestu
Nowe uprawnienia
Stałe wartości nowych funkcji
Platforma dodaje kilka nowych funkcji sprzętowych, które deweloperzy mogą zadeklarować w manifestacjach aplikacji jako wymagane przez aplikacje. Dzięki temu deweloperzy mogą kontrolować sposób filtrowania aplikacji po jej opublikowaniu w Google Play.
Pełne informacje o tym, jak deklarować funkcje i wykorzystywać je do filtrowania, znajdziesz w dokumentacji funkcji <uses-feature>
.
Raport o różnicach w interfejsie API
Szczegółowe informacje o wszystkich zmianach w interfejsie API w Androidzie 2.3 (poziom interfejsu API 9) znajdziesz w raporcie o różnicach w interfejsie API.
Poziom interfejsu API
Platforma Android 2.3 udostępnia zaktualizowaną wersję interfejsu API frameworku. Interfejs API Androida 2.3 ma przypisany identyfikator całkowity – 9 – który jest przechowywany w systemie. Ten identyfikator, zwany „poziomem interfejsu API”, umożliwia systemowi prawidłowe określenie, czy aplikacja jest zgodna z systemem, zanim zostanie zainstalowana.
Aby korzystać w aplikacji z interfejsów API wprowadzonych w Androidzie 2.3,
musisz skompilować aplikację zgodnie z biblioteką Androida w bibliotece
platformy SDK Androida 2.3. W zależności od potrzeb możesz też dodać atrybut android:minSdkVersion="9"
do elementu <uses-sdk>
w pliku manifestu aplikacji. Jeśli Twoja aplikacja została zaprojektowana do działania tylko na Androidzie 2.3 lub nowszym,
zadeklarowanie tego atrybutu uniemożliwia wcześniejsze zainstalowanie aplikacji
do obsługi różnych wersji platformy.
Więcej informacji znajdziesz w artykule Co to jest interfejs API Poziom?