Poziom interfejsu API: 15
Android 4.0.3 (ICE_CREAM_SANDWICH_MR1
)
to wersja rozwojowa rodziny platform Android 4.0 (ICE_CREAM_SANDWICH
). Ta wersja zawiera nowe funkcje dla użytkowników i programistów, zmiany w interfejsie API oraz różne poprawki błędów.
Dla deweloperów platforma Android 4.0.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 i testowanie aplikacji na Androida w wersji 4.0.3, użyj Menedżera pakietu Android SDK, aby pobrać platformę do swojego pakietu SDK.
Omówienie interfejsu API
W sekcjach poniżej znajdziesz omówienie techniczne nowych interfejsów API w Androidzie 4.0.3.
Interfejs API strumienia mediów społecznościowych w usługach dostawcy kontaktów
Aplikacje korzystające z danych strumienia społecznościowego, takich jak aktualizacje stanu i meldunki, mogą teraz synchronizować te dane z każdym kontaktem użytkownika, udostępniając elementy strumienia wraz ze zdjęciami.
Tabela bazy danych zawierająca strumień społecznościowy konkretnego kontaktu jest zdefiniowana przez android.provider.ContactsContract.StreamItems, a jej identyfikator URI jest zagnieżdżony w katalogu ContactsContract.RawContacts
, do którego należą elementy strumienia. Każda tabela strumienia społecznościowego zawiera kilka kolumn z metadanymi o każdym elemencie strumienia, np. ikonę źródła (awatar), etykietę elementu, główny tekst treści, komentarze dotyczące elementu (np. odpowiedzi innych osób) i inne. Zdjęcia powiązane ze strumieniem są przechowywane w innej tabeli zdefiniowanej przez android.provider.ContactsContract.StreamItemPhotos, która jest dostępna jako podkatalog android.provider.ContactsContract.StreamItemsUri.
Więcej informacji znajdziesz w android.provider.ContactsContract.StreamItems i android.provider.ContactsContract.StreamItemPhotos.
Aby odczytywać lub zapisywać elementy strumienia społecznościowego dotyczące kontaktów, aplikacja musi poprosić użytkownika o pozwolenie, deklarując w plikach manifestu <uses-permission
android:name="android.permission.READ_SOCIAL_STREAM">
lub <uses-permission
android:name="android.permission.WRITE_SOCIAL_STREAM">
.
Dostawca kalendarza
- Dodaje klasę
CalendarContract.Colors
, która reprezentuje tabelę kolorów w CalendarProvider. Klasa udostępnia pola umożliwiające dostęp do kolorów dostępnych dla danego konta. Kolory są odwoływane za pomocą parametru COLOR_KEY
, który musi być unikalny w przypadku danej nazwy lub typu konta. Tych wartości może zaktualizować tylko adapter synchronizacji.
- Dodaje właściwości
ALLOWED_AVAILABILITY
i
ALLOWED_ATTENDEE_TYPES
do obsługi wymiany/synchronizacji.
- Dodaje
TYPE_RESOURCE
(takie jak sale konferencyjne) dla uczestników i AVAILABILITY_TENTATIVE
, a także EVENT_COLOR_KEY
dla wydarzeń.
CalendarContract.Colors
, która reprezentuje tabelę kolorów w CalendarProvider. Klasa udostępnia pola umożliwiające dostęp do kolorów dostępnych dla danego konta. Kolory są odwoływane za pomocą parametru COLOR_KEY
, który musi być unikalny w przypadku danej nazwy lub typu konta. Tych wartości może zaktualizować tylko adapter synchronizacji.ALLOWED_AVAILABILITY
i
ALLOWED_ATTENDEE_TYPES
do obsługi wymiany/synchronizacji.TYPE_RESOURCE
(takie jak sale konferencyjne) dla uczestników i AVAILABILITY_TENTATIVE
, a także EVENT_COLOR_KEY
dla wydarzeń.Widżety na ekranie głównym
Od Androida 4.0 widżety na ekranie głównym nie powinny już mieć własnych marginesów. Zamiast tego system automatycznie dodaje wypełnienie dla każdego widżetu na podstawie cech bieżącego ekranu. Dzięki temu widżety są wyświetlane w siatce w bardziej spójny sposób. Aby ułatwić aplikacjom obsługę widżetów na ekranie głównym, platforma udostępnia nową metodę getDefaultPaddingForWidget()
. Aplikacje mogą wywoływać tę metodę, aby uzyskać wypełnienie zdefiniowane przez system i uwzględnić je podczas obliczania liczby komórek do przydzielenia widżetowi.
Sprawdzanie pisowni
- W przypadku aplikacji, które korzystają z usług sprawdzania pisowni, nowa metoda
cancel()
anuluje wszystkie oczekujące i działające zadania sprawdzania pisowni w ramach sesji. - W przypadku usług sprawdzania pisowni nowa flaga sugestii
RESULT_ATTR_HAS_RECOMMENDED_SUGGESTIONS
pozwala im odróżnić sugestie o większym poziomie pewności od tych o mniejszym poziomie pewności. Na przykład sprawdzacz pisowni może ustawić flagę, jeśli słowo nie znajduje się w słowniku użytkownika, ale ma prawdopodobne sugestie, lub nie ustawić flagi, jeśli słowo nie znajduje się w słowniku i ma sugestie, które prawdopodobnie będą mniej przydatne.Aplikacje połączone z sprawdzaniem pisowni mogą używać flagi
RESULT_ATTR_HAS_RECOMMENDED_SUGGESTIONS
w połączeniu z innymi atrybutami sugestii oraz metodamigetSuggestionsAttributes()
igetSuggestionsCount()
, aby określić, czy należy oznaczyć wprowadzane słowa jako literówki i zaproponować sugestie. - Nowy styl
FLAG_AUTO_CORRECTION
dla zakresów tekstu wskazuje, że autokorekta ma zostać zastosowana do słowa lub tekstu, który użytkownik właśnie pisze lub komponuje. Ten typ sugestii jest renderowany inaczej, aby wskazać, że odbywa się automatyczna korekta.
Bluetooth
Nowe publiczne metody fetchUuidsWithSdp()
i getUuids()
umożliwiają aplikacjom określanie funkcji (identyfikatorów UUID) obsługiwanych przez urządzenie zdalne. W przypadku fetchUuidsWithSdp()
system przeprowadza wykrywanie usługi na urządzeniu zdalnym, aby uzyskać obsługiwane identyfikatory UUID, a następnie przekazuje wynik w intencji ACTION_UUID
.
Zestaw narzędzi UI
Nowe metody setUserVisibleHint()
i getUserVisibleHint()
umożliwiają fragmentowi określenie, czy jest on obecnie widoczny dla użytkownika. System opóźnia rozpoczęcie działania fragmentów, które nie są widoczne dla użytkownika, do czasu uruchomienia ładowarek dla widocznych fragmentów. Wskazówka dotycząca widoczności jest domyślnie ustawiona na „true” (prawda).
Grafika
- Nowa metoda
setDefaultBufferSize(int, int)
wSurfaceTexture
ustawia domyślny rozmiar buforów obrazów. Ta metoda może służyć do ustawiania rozmiaru obrazu podczas generowania obrazów za pomocąCanvas
(za pomocąlockCanvas(Rect)
) lub OpenGL ES (za pomocą EGLSurface). - Dodaje definicje typów enumeracji rozszerzenia OpenGL ES GL_OES_EGL_image_external:
GL_REQUIRED_TEXTURE_IMAGE_UNITS_OES
,GL_SAMPLER_EXTERNAL_OES
,GL_TEXTURE_BINDING_EXTERNAL_OES
iGL_TEXTURE_EXTERNAL_OES
.
Ułatwienia dostępu
- Klienci klasy
RemoteViews
mogą teraz używać metodysetContentDescription()
do ustawiania i pobierania opisu treści dowolnego widoku w rozwiniętym układzie. - Metody
getMaxScrollX()
,getMaxScrollY()
,setMaxScrollX()
isetMaxScrollY()
umożliwiają aplikacjom pobieranie i ustawianie maksymalnego przesunięcia przewijania obiektuAccessibilityRecord
. - Gdy włączony jest tryb dotykowy, nowe bezpieczne ustawienie
ACCESSIBILITY_SPEAK_PASSWORD
wskazuje, czy użytkownik chce, aby edytor tekstu odczytywał tekst wpisany w polach haseł, nawet gdy nie używa zestawu słuchawkowego. Domyślnie tekst hasła nie jest odczytywany, chyba że używane jest urządzenie z słuchawkami.
Przekształcanie tekstu na mowę
- Dodaje nową metodę
getFeatures()
do wysyłania zapytań i włączania obsługi sieci TTS. - Dodaje nową klasę listenera,
UtteranceProgressListener
, którą silniki mogą zarejestrować, aby otrzymywać powiadomienia o błędach syntezy mowy.
Baza danych
- Nowa klasa
CrossProcessCursorWrapper
umożliwia dostawcom treści wydajniejsze zwracanie wyników zapytań międzyprocesowych. Nowa klasa jest przydatnym elementem konstrukcyjnym do zawijania kursorów, które będą wysyłane do procesów zdalnie. Może też przekształcać zwykłe obiektyCursor
w przezroczyste obiektyCrossProcessCursor
.Klasa
CrossProcessCursorWrapper
rozwiązuje typowe problemy z wydajnością i błędy, które występują w aplikacjach podczas implementowania dostawców treści. - Konstruktor
CursorWindow(java.lang.String)
przyjmuje teraz jako dane wejściowe ciąg znaków nazwy. System nie rozróżnia już okien kursora lokalnego i zdalnego, więc funkcjaCursorWindow(boolean)
została wycofana.
Przeznaczenie
Dodaje nowe kategorie kierowania na popularne typy aplikacji na urządzeniu, takie jak CATEGORY_APP_BROWSER
, CATEGORY_APP_CALENDAR
, CATEGORY_APP_MAPS
i inne.
Aparat
MediaMetadataRetriever
dodaje nową stałąMETADATA_KEY_LOCATION
, aby umożliwić aplikacjom dostęp do informacji o lokalizacji obrazu lub filmu.CamcorderProfile
dodaje profile rozdzielczości QVGA (320 x 240). Poziom jakości jest reprezentowany przez stałeQUALITY_QVGA
iQUALITY_TIME_LAPSE_QVGA
.- Nowe metody
setVideoStabilization()
,getVideoStabilization()
iisVideoStabilizationSupported()
pozwalają sprawdzić stabilizację wideo wCamera
i nią zarządzać.
Uprawnienia
Oto nowe uprawnienia:
- android.Manifest.permission#READ_SOCIAL_STREAM i android.Manifest.permission#WRITE_SOCIAL_STREAM: zezwalanie na odczytywanie i zapisywanie danych z potoków danych społecznościowych do kontaktu w udostępnionym dostawcy kontaktów.
Szczegółowe informacje o wszystkich zmianach w interfejsie API w Androidzie 4.0.3 (poziom interfejsu API 15) znajdziesz w raporcie o różnicach w interfejsie API.
Poziom interfejsu API
Interfejs API w wersji 4.0.3 Androida ma przypisany identyfikator liczbowy 15, 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 używać w swojej aplikacji interfejsów API wprowadzonych w Androidzie 4.0.3, musisz skompilować aplikację na platformie Androida, która obsługuje poziom interfejsu API 15 lub nowszy. W zależności od potrzeb możesz też dodać atrybut android:minSdkVersion="15"
do elementu <uses-sdk>
.
Więcej informacji znajdziesz w dokumentacji poziomów interfejsu API.