Android 6.0 (M) zawiera nowe funkcje dla użytkowników i deweloperów aplikacji. Dokument przedstawia wprowadzenie: z najbardziej znanych interfejsów API.
Zacznij programować
Aby zacząć tworzyć aplikacje na Androida 6.0, musisz najpierw pobrać pakiet SDK do Androida. Następnie użyj Menedżera SDK. , aby pobrać platformę SDK Androida 6.0 i obrazy systemu.
Zaktualizuj docelowy poziom interfejsu API
Aby lepiej zoptymalizować aplikację pod kątem urządzeń z Androidem ,
Ustaw urządzenie targetSdkVersion
na
"23"
, zainstaluj aplikację na urządzeniu z Androidem
obraz systemu, przetestuj go, a następnie opublikuj zaktualizowaną aplikację z
tę zmianę.
Możesz używać interfejsów API Androida, obsługując jednocześnie starsze wersje
przez dodanie do kodu warunków, które sprawdzają poziom systemowego interfejsu API
przed uruchomieniem interfejsów API nieobsługiwanych przez minSdkVersion
.
Więcej informacji o zachowaniu zgodności wstecznej znajdziesz w sekcji Pomoc techniczna
Różne wersje platformy.
Więcej informacji o poziomach interfejsu API znajdziesz w artykule Co to jest interfejs API? Poziom?
Uwierzytelnianie odciskiem palca
Ta wersja udostępnia nowe interfejsy API, które umożliwiają uwierzytelnianie użytkowników przez skanowanie ich odcisków palców obsługiwanych urządzeniach, używaj tych interfejsów API w połączeniu z systemu Android Keystore.
Aby uwierzytelnić użytkowników za pomocą skanowania odcisku palca, pobierz instancję nowego
FingerprintManager
i wywołaj metodę
authenticate()
. Aplikacja musi działać na zgodnej platformie
urządzenia z czytnikiem linii papilarnych. Musisz wdrożyć interfejs użytkownika dla odcisku palca
uwierzytelniania w aplikacji i użyj w interfejsie standardowej ikony odcisku palca Androida.
Ikona odcisku palca na Androidzie (c_fp_40px.png
) znajduje się w
Przykład uwierzytelniania biometrycznego.
Jeśli tworzysz wiele aplikacji korzystających z uwierzytelniania odciskiem palca, pamiętaj, że każda z nich musi
niezależnego uwierzytelniania
odcisku palca użytkownika.
Aby korzystać z tej funkcji w aplikacji, najpierw dodaj do niej
uprawnienia USE_FINGERPRINT
w pliku manifestu.
<uses-permission android:name="android.permission.USE_FINGERPRINT" />
![Urządzenie mobilne z wyświetloną funkcją uwierzytelniania odciskiem palca](https://developer.android.com/static/images/android-6.0/fingerprint-screen.png?authuser=9&hl=pl)
Jeśli chcesz zobaczyć, jak w aplikacji jest uwierzytelnianie odciskiem palca, zapoznaj się z artykułami Przykład uwierzytelniania biometrycznego. Aby zobaczyć, jak korzystać z tych uwierzytelniania Interfejsy API w połączeniu z innymi interfejsami API Androida, zobacz film Interfejsy API związane z odciskami cyfrowymi i płatnościami.
Jeśli testujesz tę funkcję, wykonaj te czynności:
- Zainstaluj pakiet Android SDK Tools w wersji 24.3, jeśli jeszcze jej nie masz.
- Zarejestruj nowy odcisk palca w emulatorze, otwierając stronę Ustawienia > Bezpieczeństwo > odcisk palca, a następnie postępuj zgodnie z instrukcjami rejestracji.
- Użyj emulatora do emulowania zdarzeń dotknięcia odciskiem palca za pomocą
tego polecenia. Użyj tego samego polecenia, aby emulować kliknięcia odcisku palca na ekranie blokady.
w aplikacji.
adb -e emu finger touch <finger_id>
W systemie Windows konieczne może być uruchomienie polecenia
telnet 127.0.0.1 <emulator-id>
, a następniefinger touch <finger_id>
Potwierdź dane logowania
Aplikacja może uwierzytelniać użytkowników na podstawie tego, kiedy ostatnio odblokowali swoje urządzenie. Ten dzięki temu użytkownicy nie muszą zapamiętywać dodatkowych haseł aplikacji i unikają konieczności wdrożenia własnego interfejsu uwierzytelniania. Aplikacja powinna używać tej funkcji w: w połączeniu z implementacją klucza publicznego lub tajnego do uwierzytelniania użytkowników.
Aby ustawić czas oczekiwania, po którym ten sam klucz może być używany ponownie po pomyślnym zalogowaniu się użytkownika
uwierzytelniony, wywołaj nowy
setUserAuthenticationValidityDurationSeconds()
podczas konfigurowania KeyGenerator
lub
KeyPairGenerator
Unikaj nadmiernego wyświetlania okna ponownego uwierzytelniania – aplikacje powinny używać polecenia
obiektu kryptograficznego, a gdy upłynie czas oczekiwania, użyj
createConfirmDeviceCredentialIntent()
do ponownego uwierzytelnienia użytkownika w aplikacji.
Łączenie aplikacji
W tej wersji ulepszyliśmy system intencji Androida, zwiększając możliwości łączenia aplikacji. Ta funkcja umożliwia powiązanie aplikacji z Twoją domeną internetową. Na podstawie platformy, platforma może określić domyślną aplikację używaną do obsługi i pomiń prośbę o wybranie aplikacji. Aby dowiedzieć się, jak wdrożyć tę funkcję, zobacz Obsługa linków aplikacji
Automatyczna kopia zapasowa aplikacji
System automatycznie wykonuje automatyczne tworzenie kopii zapasowych i przywracanie danych aplikacji. Aplikacja musi być kierowana Androida 6.0 (poziom interfejsu API 23), aby umożliwić takie działanie; nie musisz dodawać żadnego dodatkowego kodu. Jeśli użytkownik usunie swoje konta Google, ich kopie zapasowe również zostaną usunięte. Aby dowiedzieć się, jak oraz jak skonfigurować elementy w systemie plików, które mają być przesyłane do kopii zapasowej, zobacz Konfigurowanie Automatycznej kopii zapasowej aplikacji
Udostępnianie bezpośrednie
![Dolna część urządzenia mobilnego z widoczną funkcją bezpośredniego udostępniania](https://developer.android.com/static/images/android-6.0/direct-share-screen.png?authuser=9&hl=pl)
Ta wersja udostępnia interfejsy API, dzięki którym użytkownicy mogą szybko i intuicyjnie udostępniać treści. Teraz możesz określać cele dotyczące udziału bezpośredniego, które uruchamiają określone działanie w Twojej aplikacji; Te udostępnianie bezpośrednie są widoczne dla użytkowników w menu Udostępnij. Ta funkcja umożliwia użytkownikom udostępnianie kierowania treści w innych aplikacjach (np. kontaktów). Na przykład docelowy udział bezpośredni może uruchomić aktywność w innej aplikacji społecznościowej, która umożliwia użytkownikowi udostępnianie treści bezpośrednio z konkretnego znajomego lub społeczności w tej aplikacji.
Aby włączyć cele udziału bezpośredniego, musisz zdefiniować klasę, która rozszerza
ChooserTargetService
zajęcia. Zadeklaruj
w pliku manifestu. W tej deklaracji określ
Uprawnienie BIND_CHOOSER_TARGET_SERVICE
i
filtra intencji za pomocą funkcji
Działanie SERVICE_INTERFACE
.
Ten przykład pokazuje, jak możesz zadeklarować
ChooserTargetService
w pliku manifestu.
<service android:name=".ChooserTargetService" android:label="@string/service_name" android:permission="android.permission.BIND_CHOOSER_TARGET_SERVICE"> <intent-filter> <action android:name="android.service.chooser.ChooserTargetService" /> </intent-filter> </service>
Dla każdego działania, które chcesz udostępnić
ChooserTargetService
, dodaj
Element <meta-data>
o nazwie
"android.service.chooser.chooser_target_service"
w manifeście aplikacji.
<activity android:name=".MyShareActivity” android:label="@string/share_activity_label"> <intent-filter> <action android:name="android.intent.action.SEND" /> </intent-filter> <meta-data android:name="android.service.chooser.chooser_target_service" android:value=".ChooserTargetService" /> </activity>
Interakcje głosowe
W tej wersji udostępniamy nowy interfejs API interakcji głosowej, który w połączeniu
Komendy głosowe,
pozwalają na wbudowanie w aplikacje trybów konwersacyjnych. Wywołaj funkcję
Metoda isVoiceInteraction()
pozwalająca określić, czy uruchomiono komendę głosową
Twojej aktywności. Jeśli tak, aplikacja może korzystać z
VoiceInteractor
zajęcia, aby poprosić użytkownika o potwierdzenie głosowe, wybierz
z listy opcji itp.
Większość interakcji głosowych ma działanie komendy głosowej użytkownika. Aktywność związana z interakcją głosową może
zaczynaj jednak bez wprowadzania danych
przez użytkownika. Na przykład inna aplikacja uruchomiona głosowo
może też wysyłać zamiar rozpoczęcia interakcji głosowej. Aby określić, czy Twoja aktywność
uruchomione przez zapytanie głosowe użytkownika lub z innej aplikacji do interakcji głosowej, wywołaj
Metoda isVoiceInteractionRoot()
. Jeśli inna aplikacja uruchomiła
aktywność, metoda zwraca false
. Aplikacja może wtedy poprosić użytkownika o potwierdzenie,
to działanie było zamierzone.
Więcej informacji o wdrażaniu komend głosowych znajdziesz w Witryna dla deweloperów komend głosowych
Interfejs Assist API
Ta wersja to nowy sposób, w jaki użytkownicy mogą korzystać z Twoich aplikacji z pomocą Asystenta. Aby użyć użytkownik musi włączyć asystenta, aby korzystał z bieżącego kontekstu. Po włączeniu użytkownik może wywołać asystenta w dowolnej aplikacji, przytrzymując przycisk ekranu głównego.
Aplikacja może nie udostępniać asystentowi bieżącego kontekstu, ustawiając
flaga FLAG_SECURE
. Oprócz
standardowy zestaw informacji, które platforma przekazuje asystentowi, aplikacja może udostępniać
aby uzyskać dodatkowe informacje, używając nowej klasy AssistContent
.
Aby zapewnić mu dodatkowy kontekst z aplikacji, wykonaj te czynności:
- Wdróż interfejs
Application.OnProvideAssistDataListener
. - Zarejestruj ten detektor za pomocą
registerOnProvideAssistDataListener()
- Aby podać informacje kontekstowe związane z daną aktywnością, zastąp parametr
onProvideAssistData()
wywołanie zwrotne i opcjonalnie nowy parametronProvideAssistContent()
oddzwanianie.
Elastyczne urządzenia pamięci masowej
W tej wersji użytkownicy mogą korzystać z zewnętrznych urządzeń pamięci masowej, takich jak karty SD. Wdrożenie
zewnętrzne urządzenie pamięci masowej szyfruje i formatuje je, aby działało jak pamięć wewnętrzna. Ten
pozwala użytkownikom przenosić zarówno aplikacje, jak i prywatne dane tych aplikacji między urządzeniami pamięci. Kiedy
przenoszenia aplikacji, system uwzględnia
android:installLocation
w pliku manifestu.
Jeśli Twoja aplikacja uzyskuje dostęp do tych interfejsów API lub pól, pamiętaj, że zwracane przez nie ścieżki plików zmienia się dynamicznie podczas przenoszenia aplikacji między wewnętrznym a zewnętrznym urządzeniem pamięci masowej. Zdecydowanie zalecamy, aby przy tworzeniu ścieżek plików zawsze wywoływać te interfejsy API dynamicznie. Nie używaj zakodowanych na stałe ścieżek do plików ani zachowuj w pełni kwalifikowanych ścieżek plików, które zostały utworzone wcześniej.
Context
metody:ApplicationInfo
pola:
Aby debugować tę funkcję, możesz włączyć korzystanie z dysku USB, który jest podłączonego do urządzenia z Androidem za pomocą kabla USB On-The-Go (OTG), korzystając z tego polecenia:
$ adb shell sm set-force-adoptable true
Powiadomienia
W tej wersji wprowadziliśmy te zmiany w interfejsie API powiadomień:
- Nowy poziom filtra
INTERRUPTION_FILTER_ALARMS
, który odpowiada nowemu trybowi Nie przeszkadzać (Tylko alarmy). - Nowa wartość kategorii
CATEGORY_REMINDER
używana do odróżniać przypomnienia zaplanowane przez użytkownika od innych wydarzeń (CATEGORY_EVENT
) i alarmy (CATEGORY_ALARM
). - Nowe zajęcia w aplikacji
Icon
, które możesz dołączać do powiadomień przezsetSmallIcon()
isetLargeIcon()
. Podobnie MetodaaddAction()
akceptuje teraz obiektIcon
zamiast rysowalny identyfikator zasobu. - Nowa metoda
getActiveNotifications()
, która umożliwia aby sprawdzić, które z ich powiadomień są aktywne.
Obsługa rysika Bluetooth
Ta wersja zapewnia lepszą obsługę wprowadzania danych przez użytkownika za pomocą rysika Bluetooth. Użytkownicy mogą się parować
i połączyć zgodny rysik Bluetooth z telefonem lub tabletem. Po podłączeniu przesuń w pozycję
informacje z ekranu dotykowego są łączone z informacjami o ciśnieniu i przyciskach z rysika
dają większą swobodę ekspresji niż ekran dotykowy. Aplikacja może nasłuchiwać
naciśnie przycisk rysika i wykonuje dodatkowe działania, rejestrując
View.OnContextClickListener
i
GestureDetector.OnContextClickListener
obiektów w Twojej aktywności.
Używaj stałych metod i metod MotionEvent
do wykrywania przycisku rysika
interakcje:
- Jeśli użytkownik dotknie rysika z przyciskiem na ekranie aplikacji,
Zwracane metody
getTooltype()
TOOL_TYPE_STYLUS
- W przypadku aplikacji kierowanych na Androida 6.0 (poziom interfejsu API 23) parametr
getButtonState()
Metoda zwracaBUTTON_STYLUS_PRIMARY
, gdy użytkownik naciska główny przycisk rysika. Jeśli rysik ma drugi przycisk, ta sama metoda zwróciBUTTON_STYLUS_SECONDARY
po naciśnięciu przez użytkownika. Jeśli użytkownik naciśnie jednocześnie, metoda zwraca obie wartości połączone operatorem LUB (BUTTON_STYLUS_PRIMARY
|BUTTON_STYLUS_SECONDARY
). -
W przypadku aplikacji kierowanych na niższą wersję platformy parametr
Zwracane metody
getButtonState()
BUTTON_SECONDARY
(aby nacisnąć główny przycisk rysika),BUTTON_TERTIARY
(naciśnięcie dodatkowego przycisku rysika) lub obie te wartości.
Ulepszone skanowanie Bluetooth Low Energy
Jeśli Twoja aplikacja skanuje urządzenia Bluetooth Low Energy, użyj nowego
setCallbackType()
pozwala określić, czy system ma powiadamiać wywołania zwrotne, gdy po raz pierwszy znajdzie je lub zobaczy
czyli pakietu reklamowego pasującego do zestawu ScanFilter
. Ten
jest bardziej energooszczędna niż w poprzedniej wersji platformy.
Pomoc do hotspota 2.0 w wersji 1
Ta wersja dodaje obsługę specyfikacji Hotspot 2.0 w wersji 1 na Nexusach 6 i Nexus 9. Do
udostępniania danych logowania do hotspota 2.0 w aplikacji, użyj nowych metod
WifiEnterpriseConfig
klasy, takie jak
setPlmn()
i
setRealm()
W
WifiConfiguration
, możesz ustawić
FQDN
oraz
providerFriendlyName
pól.
Nowa metoda isPasspointNetwork()
wskazuje, czy
reprezentuje punkt dostępu Hotspot 2.0.
Tryb wyświetlacza 4K
Platforma pozwala teraz aplikacjom prosić o zmianę rozdzielczości wyświetlacza na renderowanie 4K.
na zgodnym sprzęcie. Aby przesłać zapytanie o bieżącą rozdzielczość fizyczną, użyj nowej
Display.Mode
interfejsów API. Jeśli interfejs użytkownika jest wyświetlany w niższej rozdzielczości logicznej i jest
należy zwiększyć rozdzielczość fizyczną, należy pamiętać, że rozdzielczość fizyczna
Zwracane metody getPhysicalWidth()
mogą różnić się od wartości logicznej
Rozwiązanie zgłoszone przez: getSize()
.
Możesz poprosić system o zmianę rozdzielczości fizycznej w trakcie działania aplikacji, ustawiając
właściwości preferredDisplayModeId
przypisanej do
okno. Ta funkcja jest przydatna, gdy chcesz przełączyć się na rozdzielczość 4K. Na wyświetlaczu 4K
interfejs będzie nadal renderowany w oryginalnej rozdzielczości (np. 1080p) i powiększy się do
4K, ale obiekty SurfaceView
mogą wyświetlać treści w rozdzielczości natywnej.
Motywy ColorStateLists
Atrybuty motywu są teraz obsługiwane w
ColorStateList
na urządzeniach z Androidem 6.0 (poziom interfejsu API 23).
Resources.getColorStateList()
i
Dotychczasowe metody: Resources.getColor()
wycofane. Jeśli wywołujesz te interfejsy API, wywołaj nowe
Context.getColorStateList()
lub
Context.getColor()
metod. Te metody są
są też dostępne w bibliotece pakietu Appcompat w wersji 4 w usłudze ContextCompat
.
Funkcje audio
W tej wersji wprowadziliśmy ulepszenia w zakresie przetwarzania dźwięku na Androidzie, takie jak:
- obsługa MIDI,
z nowymi interfejsami API
android.media.midi
. Użyj tych interfejsów API do wysyłania i odbierania MIDI zdarzeń. - Nowe
AudioRecord.Builder
iAudioTrack.Builder
klas do tworzenia cyfrowych obiektów do przechwytywania i odtwarzania dźwięku oraz konfigurowania dźwięku właściwości źródła i ujścia, aby zastąpić wartości domyślne systemu. - Punkty zaczepienia interfejsu API do kojarzenia urządzeń audio i wejściowych. Jest to szczególnie przydatne, jeśli Twoja aplikacja
umożliwia użytkownikom rozpoczynanie wyszukiwania głosowego za pomocą kontrolera do gier lub pilota połączonego z Androidem.
Telewizja. System wywołuje nowe
onSearchRequested()
wywołanie zwrotne, gdy użytkownik rozpocznie wyszukiwanie. Aby określić, czy urządzenie wejściowe użytkownika ma wbudowany mikrofonu, pobierz obiektInputDevice
z tego wywołania zwrotnego, a następnie wywołaj metodę nową metodęhasMicrophone()
. - Nowa metoda
getDevices()
, która umożliwia pobierze listę wszystkich urządzeń audio aktualnie podłączonych do systemu. Możesz też zarejestrowaćAudioDeviceCallback
obiekt, jeśli chcesz, aby system powiadamiał Twoją aplikację gdy urządzenie audio łączy się lub rozłącza.
Funkcje wideo
W tej wersji dodaliśmy do interfejsów API przetwarzania wideo nowe funkcje, w tym:
- Nowa klasa
MediaSync
, która ułatwia synchroniczne renderowanie aplikacji strumienie audio i wideo. Bufory audio są przesyłane w sposób nieblokujący i są zwrócony przez oddzwonienie. Obsługuje również dynamiczną szybkość odtwarzania. - Nowe zdarzenie
EVENT_SESSION_RECLAIMED
, które wskazuje, że sesja otwarta przez aplikację została odebrana przez menedżera zasobów. Jeśli aplikacja używa sesji DRM, należy obsługiwać to zdarzenie i uważać, aby nie używać odzyskanej sesji. - Nowy kod błędu
ERROR_RECLAIMED
, który wskazuje że menedżer zasobów odzyskał zasób multimedialny używany przez kodek. Wyjątkiem jest funkcja kodek musi zostać zwolniony, ponieważ trafił do stanu terminala. - Nowy interfejs
getMaxSupportedInstances()
otrzymujący wskazówkę dotyczącą maksymalnej liczby obsługiwanych instancji kodeków. - Nowa metoda
setPlaybackParams()
do ustawiania szybkości odtwarzania multimediów w zwolnionym tempie. Automatycznie rozciąga też lub przyspiesza odtwarzanie dźwięku w wraz z filmem.
Funkcje aparatu
Ta wersja zawiera następujące nowe interfejsy API umożliwiające dostęp do latarki aparatu oraz ponowne przetwarzanie zdjęć przez aparat:
Interfejs Flashlight API
Jeśli aparat ma lampę błyskową, możesz wywołać
setTorchMode()
do włączania i wyłączania trybu latarki bez otwierania aparatu. Aplikacja
nie posiada wyłącznych własności lampy błyskowej ani aparatu. Tryb latarki jest włączony
jest wyłączona i staje się niedostępna, gdy aparat jest niedostępny lub gdy inna kamera
zasoby, które utrzymują włączoną pochodnię, stają się niedostępne. Inne aplikacje mogą też zadzwonić
setTorchMode()
, aby wyłączyć tryb latarki. Kiedy ostatnia aplikacja włączyła tryb latarki,
tryb jest wyłączony.
Możesz zarejestrować wywołanie zwrotne, które ma być powiadamiane o stanie trybu lampy, wywołując metodę
registerTorchCallback()
. Przy pierwszej rejestracji wywołania zwrotnego jest ono natychmiast wywoływane w trybie latarki
wszystkich znanych obecnie aparatów z lampą błyskową. Jeśli tryb latarki jest włączony lub
zostanie wyłączony,
onTorchModeChanged()
.
Ponowne przetwarzanie interfejsu API
Interfejs API Camera2
został rozszerzony o obsługę reklam YUV i prywatnych
ponowne przetwarzanie obrazu nieprzejrzystego. Aby sprawdzić, czy te funkcje ponownego przetwarzania są dostępne,
Zadzwoń pod numer getCameraCharacteristics()
i sprawdź, czy
REPROCESS_MAX_CAPTURE_STALL
. Jeśli
obsługuje ponowne przetwarzanie, możesz utworzyć
sesję nagrywania filmów aparatem, wywołując
createReprocessableCaptureSession()
i tworzą żądania ponownego przetwarzania bufora wejściowego.
Użyj klasy ImageWriter
, aby podłączyć do kamery przepływ bufora wejściowego
ponownie przetwarzam dane wejściowe. Aby uzyskać pusty bufor, postępuj zgodnie z tym modelem programowania:
- Wywołaj metodę
dequeueInputImage()
. - Umieścić dane w buforze wejściowym.
- Wyślij bufor do kamery, wywołując metodę
Metoda
queueInputImage()
.
Jeśli używasz obiektu ImageWriter
razem z obiektem
Obraz PRIVATE
, aplikacja nie ma do niego dostępu
bezpośrednio na dane. Zamiast tego przekaż obraz PRIVATE
bezpośrednio do
ImageWriter
, wywołując metodę
Metoda queueInputImage()
bez kopii buforowej.
Klasa ImageReader
obsługuje teraz
Strumienie obrazów w formacie PRIVATE
. Dzięki temu aplikacja może:
zachować kolejkę obrazów okrągłych złożoną z ImageReader
obrazów wyjściowych, wybierz jeden lub
więcej zdjęć i wysłać je do usługi ImageWriter
w celu ponownego przetworzenia.
Funkcje Android for Work
Ta wersja zawiera następujące nowe interfejsy API dla Android for Work:
- Ulepszone ustawienia na urządzeniach jednorazowych należących do firmy: właściciel urządzenia
może teraz kontrolować następujące ustawienia, aby usprawnić zarządzanie
Urządzenia jednorazowe należące do firmy:
- Wyłącz lub ponownie włącz blokadę klawiszy, używając
Metoda
setKeyguardDisabled()
. - Wyłącz lub ponownie włącz pasek stanu (w tym szybkie ustawienia, powiadomienia i
gest przesuwania w górę, który uruchamia Google Now) wraz z
setStatusBarDisabled()
. - Wyłącz lub ponownie włącz bezpieczny rozruch ze stałą
UserManager
DISALLOW_SAFE_BOOT
- Zapobiega wyłączaniu ekranu, gdy urządzenie jest podłączone do
Stała wartość
STAY_ON_WHILE_PLUGGED_IN
.
- Wyłącz lub ponownie włącz blokadę klawiszy, używając
Metoda
- Instalowanie i odinstalowywanie aplikacji w trybie cichym przez właściciela urządzenia: właściciel urządzenia może teraz
dyskretne instalowanie i odinstalowywanie aplikacji za pomocą
PackageInstaller
Interfejsy API niezależne od Google Play for Work. Urządzenia można teraz obsługiwać za pomocą konta właściciela, który pobiera i instaluje aplikacje bez interakcji ze strony użytkownika. Ta funkcja jest przydatna, gdy trzeba włączyć obsługę jednym kliknięciem obsługi administracyjnej kiosków lub innych urządzeń bez aktywacji konta Google. - Cichy dostęp do certyfikatów przedsiębiorstwa: gdy aplikacja wywołuje
choosePrivateKeyAlias()
, zanim użytkownik zostanie poproszony o wybranie certyfikatu, właściciel profilu lub urządzenia może teraz zadzwonićonChoosePrivateKeyAlias()
dyskretnego udostępnienia aliasu aplikacji żądającej. Ta funkcja pozwala przyznać dostęp aplikacji zarządzanych do certyfikatów bez interakcji ze strony użytkownika. - Automatyczne akceptowanie aktualizacji systemu. Przez ustawienie zasady aktualizacji systemu za pomocą:
setSystemUpdatePolicy()
, właściciel urządzenia może teraz automatycznie akceptować system (np. w przypadku urządzenia kiosku) lub odłożyć aktualizację na później, przez użytkownika w ciągu maksymalnie 30 dni. Ponadto administrator może ustawić dzienny przedział czasu w których aktualizacja jest wymagana, np. w godzinach, gdy urządzenie kiosku nie jest używane. Kiedy dostępna jest aktualizacja systemu, system sprawdza, czy aplikacja kontrolera zasad urządzeń ustawiła Google Analytics i w razie potrzeby działa w odpowiedni sposób. -
Instalacja certyfikatu delegowanego: właściciel profilu lub urządzenia może
możliwość wywoływania tych certyfikatów przez aplikację innej firmy (
DevicePolicyManager
) interfejsy API do zarządzania: - Śledzenie użycia danych Właściciel profilu lub urządzenia może teraz wysyłać zapytania dotyczące
statystyki użycia danych można wyświetlić w sekcji Ustawienia > transmisji danych za pomocą nowej
NetworkStatsManager
metod. Właściciele profili są przyznawani automatycznie uprawnienia do wysyłania zapytań o dane w zarządzanym profilu, podczas gdy właściciele urządzeń mają dostęp do danych o użytkowaniu na koncie zarządzanego głównego użytkownika. - Zarządzanie uprawnieniami w czasie działania aplikacji:
Właściciel profilu lub urządzenia może ustawić zasady uprawnień dla wszystkich żądań środowiska wykonawczego wszystkich aplikacji używających
setPermissionPolicy()
, aby wyświetlić użytkownikowi prośbę o przyznanie uprawnień bądź automatycznie przyznać lub dyskretnie odmówić przyznania tych uprawnień. Jeśli skonfigurowana jest ta druga zasada, użytkownik nie może zmienić wybór dokonany przez profil lub właściciela urządzenia na ekranie uprawnień aplikacji w Ustawienia. - VPN w Ustawieniach: aplikacje VPN są teraz widoczne w Ustawienia > Więcej > VPN Dodatkowo powiadomienia powiązane z korzystaniem z VPN zależą teraz od tego, skonfigurowany. W przypadku właściciela profilu powiadomienia zależą od tego, czy skonfigurowano sieć VPN. dla profilu zarządzanego, osobistego lub obu tych elementów. Właściciele urządzenia otrzymują powiadomienia zależnie od tego, czy sieć VPN jest skonfigurowana dla całego urządzenia.
- Powiadomienie o stanie pracy: za każdym razem, gdy na pasku stanu pojawia się ikona aktówki, aplikacja z profilu zarządzanego ma aktywność na pierwszym planie. Ponadto, jeśli urządzenie jest jest odblokowany bezpośrednio z aktywnością aplikacji w profilu zarządzanym, wyświetla się powiadomienie że znajduje się on w profilu służbowym.
![Urządzenie mobilne z funkcją powiadomień o stanie pracy w Android for Work](https://developer.android.com/static/images/android-6.0/work-profile-screen.png?authuser=9&hl=pl)