Nowości w Androidzie 8.0

Na tej stronie znajdziesz przegląd nowych interfejsów API, funkcji i działań wprowadzonych w Androidzie 8.0 (poziom API 26), które wpływają na Androida w firmach.

Nowe interfejsy API i funkcje

Tryby zarządzania właścicielem profilu i urządzenia są teraz bardziej wydajne, wydajne i łatwiejsze w obsłudze niż kiedykolwiek wcześniej. Udostępniamy też zupełnie nowy scenariusz wdrażania – profile służbowe na w pełni zarządzanych urządzeniach. Te i inne funkcje zostały opisane w kolejnych sekcjach.

Profile służbowe na w pełni zarządzanych urządzeniach

Z Androidem 8.0 w pełni zarządzane urządzenia mogą też mieć profile służbowe. Dzięki temu firmy mogą oddzielić aplikacje i zasady przy zachowaniu kontroli i widoczności w obu profilach. Profil zarządzany może utworzyć obecny właściciel urządzenia lub inny kontroler zasad dotyczących urządzeń (DPC).

Dzięki profilom służbowym na w pełni zarządzanych urządzeniach właściciele urządzeń mogą:

  • Utwórz profil zarządzany bez interakcji użytkownika, wywołując EXTRA_PROVISIONING_SKIP_USER_CONSENT.
  • Otrzymuj powiadomienia o utworzeniu lub usunięciu użytkowników dodatkowych bądź profili zarządzanych. Wywołania zwrotne to onUserAdded() i onUserRemoved().
  • Nie zezwalaj innym DPC na tworzenie profili zarządzanych za pomocą DISALLOW_ADD_MANAGED_PROFILE. Jest to ustawienie domyślne w Androidzie 8.0 dla właścicieli nowo zarejestrowanych urządzeń lub urządzeń z Androidem 8.0.
  • Właściciele urządzeń mogą też uniemożliwić użytkownikom usuwanie istniejących profili zarządzanych za pomocą funkcji DISALLOW_REMOVE_MANAGED_PROFILE.

Właściciele urządzeń i właściciele profili mogą się ze sobą komunikować, jeśli korzystają z tego samego pliku APK, a właściciele są powiązani (patrz Przynależność użytkowników poniżej).

Więcej informacji o obsłudze tego nowego scenariusza wdrażania znajdziesz na specjalnej stronie dotyczącej profili służbowych na urządzeniach w pełni zarządzanych.

Powiązanie użytkownika

Gdy właściciel urządzenia i właściciel profilu reprezentują tę samą organizację:

  • Właściciele urządzenia i profilu mogą komunikować się ze sobą w ramach tego samego pliku APK i mogą udostępniać zasady lub stan (patrz Profile służbowe na w pełni zarządzanych urządzeniach powyżej).

  • Do powiązanych użytkowników mogą mieć zastosowanie funkcje działające na poziomie urządzenia, takie jak logowanie lub tryb blokady listy dozwolonych.

Identyfikatory organizacji powiązane z profilem lub użytkownikiem służą do identyfikowania organizacji. Gdy identyfikatory przynależności są zgodne, użytkownicy stają się powiązani. Właściciele urządzeń i profili używają funkcji setAffiliationIds() do ustawiania identyfikatorów powiązań. Przedstaw organizacje za pomocą długich, trudnych do odgadnięcia identyfikatorów w postaci ciągów znaków.

Nowy dostęp dla powiązanych użytkowników

Jeśli wszyscy użytkownicy pomocniczy i profile na urządzeniu są powiązane z właścicielem urządzenia, dostępne są te funkcje:

Logowanie zabezpieczeń i raportowanie błędów były wcześniej dostępne tylko na urządzeniach z jednym użytkownikiem lub urządzeniach mających tylko 1 profil i 1 użytkownika.

Tryb zadania blokowania jest dostępny dla użytkowników dodatkowych i profili zarządzanych, gdy konto jest powiązane z właścicielem urządzenia za pomocą setLockTaskPackages(). Szczegółowe informacje o powiązaniach użytkowników znajdziesz w artykule o powiązanych użytkownikach.

Wyłączenia odpowiedzialności dotyczące niestandardowych ustawień obsługi administracyjnej

DPC może teraz wyświetlać użytkownikom własne wyłączenia odpowiedzialności podczas obsługi administracyjnej użytkowników. Używaj znaczników EXTRA_PROVISIONING_DISCLAIMERS, EXTRA_PROVISIONING_DISCLAIMER_HEADER i EXTRA_PROVISIONING_DISCLAIMER_CONTENT, aby dodawać wyłączenia odpowiedzialności dotyczące tekstu w stylu. Niestandardowe wyłączenia odpowiedzialności DPC pojawiają się na zwijanej liście warunków.

Zabezpieczenia

Właściciele profili i właściciele urządzeń mogą za pomocą setRequiredStrongAuthTimeout() skonfigurować czas oczekiwania na odblokowanie urządzenia lub profilu z dodatkową metodą uwierzytelniania, taką jak odciski palców lub agenty zaufania. Po upływie tego czasu użytkownik musi odblokować urządzenie lub profil za pomocą silnej metody uwierzytelniania, np. hasła, kodu PIN lub wzoru.

Właściciele urządzeń i właściciele profili mogą bezpiecznie resetować hasła do urządzeń i profili służbowych za pomocą resetPasswordWithToken(). W przypadku urządzeń obsługujących szyfrowanie za pomocą plików ten interfejs API jest dostępny, zanim użytkownik odblokuje urządzenie lub profil, pod warunkiem, że DPC będzie szyfrować dane.

W przypadku blokowania profilu służbowego na urządzeniu obsługującym szyfrowanie na podstawie plików lockNow(int) może opcjonalnie usunąć podstawowe klucze szyfrowania profilu służbowego za pomocą FLAG_EVICT_CREDENTIAL_ENCRYPTION_KEY. Klucze szyfrowania są też usuwane, gdy użytkownik wyłączy swój profil służbowy.

Właściciele urządzeń mogą też za pomocą setNetworkLoggingEnabled() włączyć logowanie sieciowe dotyczące zapytań DNS i połączeń TCP zainicjowanych z urządzeń należących do firmy. Więcej informacji znajdziesz w artykule o rejestrowaniu aktywności w sieci.

Właściciele profili mogą określać, które pakiety głównego użytkownika mogą obserwować powiadomienia z profilu służbowego. Wywołaj metodę setPermittedCrossProfileNotificationListeners(), aby ustawić listę dozwolonych pakietów, które odbierają zdarzenia za pomocą NotificationListenerService. Ustawienie dozwolonych detektorów na null (domyślne) wyłącza dodawanie do listy dozwolonych i wszystkie pakiety mogą nasłuchiwać powiadomień. Aby ograniczyć zdarzenia do pakietów systemowych, przekaż pusty zestaw. Aby wyświetlić aplikacje, które nie mają dostępu do powiadomień z profilu służbowego, użytkownik może kliknąć Ustawienia > Aplikacje i powiadomienia > Aplikacje ze specjalnym dostępem > Dostęp do powiadomień.

Właściciele profili i właściciele urządzeń mogą też pobierać informacje o oczekujących aktualizacjach systemu dostępnych na urządzeniu, korzystając z usługi getPendingSystemUpdate().

Przekazywanie dostępu do interfejsu App Management API

Przekazywanie dostępu do interfejsu API umożliwia właścicielom urządzeń i właścicielom profili całkowite przejęcie zarządzania aplikacjami innymi aplikacjami. Klasa DevicePolicyManager udostępnia metody zarządzania zakresami przekazywania, które właściciele urządzeń i profili mogą przyznawać pakietom:

W tabeli poniżej pokazujemy, jak różne metody w DevicePolicyManager są przyporządkowane do różnych zakresów:

Tabela 1. Korelacja między zakresami a metodami zasad dotyczących urządzeń

Grupa Metody
DELEGATION_CERT_INSTALL
DELEGATION_APP_RESTRICTIONS
DELEGATION_BLOCK_UNINSTALL setUninstallBlocked()
DELEGATION_PERMISSION_GRANT
DELEGATION_PACKAGE_ACCESS
DELEGATION_ENABLE_SYSTEM_APP enableSystemApp()

Długo działające usługi w tle

Właściciele urządzeń i profili mogą tworzyć podklasy DeviceAdminService, aby tworzyć usługi w tle. System Android próbuje utrzymać usługę uruchomioną podczas działania użytkownika. Jeśli chcesz uruchamiać okresowe zadania, przed utworzeniem usługi w tle rozważ użycie JobScheduler.

Sterowanie usługą kopii zapasowej

Właściciele urządzeń mogą przełączać usługę Android Backup Service, korzystając z nowych metod w DevicePolicyManager. Włącz lub wyłącz usługę kopii zapasowej za pomocą setBackupServiceEnabled(). Sprawdź stan usługi kopii zapasowej za pomocą isBackupServiceEnabled().

Konfiguracja serwera proxy Wi-Fi

Właściciele urządzeń i właściciele profili mogą konfigurować serwery proxy HTTP dla sieci Wi-Fi. Użyj pliku PAC lub ustawień ręcznych, aby skonfigurować serwer proxy dla każdej sieci Wi-Fi. Aby ustawić lub usunąć serwer proxy dla WifiConfiguration, wywołaj jego metodę setHttpProxy(). Aby uzyskać ustawienia serwera proxy, wywołaj getHttpProxy().

Okna z objaśnieniami funkcji wyłączonych przez administratora

Twoja aplikacja powinna zawierać przydatne wyjaśnienie dla użytkowników próbujących użyć funkcji wyłączonej przez administratora. Wszystkie aplikacje mogą teraz używać polecenia createAdminSupportIntent() do tworzenia intencji, która po przekazaniu do startActivity(Intent) wyświetli okno z wyjaśnieniem. Intencje obejmują dostosowane, zlokalizowane wyjaśnienia dotyczące wyłączonych aparatów, wyłączone zrzuty ekranu i wszystkie ograniczenia UserManager.

Ograniczanie Bluetootha

Właściciele urządzeń mogą wyłączyć Bluetooth, wpływając na wszystkich użytkowników i profile na urządzeniu. Aby wyłączyć Bluetooth, dodaj ograniczenie użytkownika DISALLOW_BLUETOOTH.

Właściciele urządzeń i właściciele profili mogą uniemożliwić użytkownikom wysyłanie plików przez Bluetooth za pomocą DISALLOW_BLUETOOTH_SHARING. Nie ma to wpływu na odbieranie plików. Jeśli skonfigurujesz ją przez właściciela urządzenia, zasada DISALLOW_BLUETOOTH_SHARING będzie stosowana do wszystkich użytkowników urządzenia. To ustawienie jest domyślne w Androidzie 8.0 dla nowych i istniejących profili na urządzeniach z Androidem 8.0.

Zmiany w działaniu

Jeśli tworzysz aplikacje dla firm, w tym DPC, zapoznaj się z tymi zmianami w działaniu Androida 8.0 i odpowiednio zmodyfikuj aplikację.

Usuwanie użytkowników

Właściciele urządzeń mogą usuwać użytkowników dodatkowych i profile zarządzane za pomocą funkcji removeUser(), nawet jeśli włączona jest usługa DISALLOW_REMOVE_USER.

Zabezpieczenia

Uwierzytelnianie

W klasie DevicePolicyManager zostały wprowadzone te zmiany:

  • Metoda lockNow() blokuje profil służbowy tylko wtedy, gdy aktywne jest osobne wyzwanie służbowe.
  • Metoda resetPassword() nie jest już dostępna dla DPC, które działają jako właściciele urządzeń lub profili i które są kierowane na Androida 8.0. Jeśli zostanie wywołany, zostanie zgłoszony wyjątek zabezpieczeń. Zamiast tego DPC powinien używać parametru resetPasswordWithToken().

    Uwaga: ta zmiana nie ma wpływu na platformy DPC kierowane na Androida 7.1.1 (poziom interfejsu API 25) lub niższe, a także na kontrolery DPC z tylko uprawnieniami administratora urządzenia.

  • W przypadku urządzeń obsługujących szyfrowanie na podstawie plików wartość isActivePasswordSufficient() jest niedostępna, dopóki użytkownik nie odblokuje urządzenia po raz pierwszy po ponownym uruchomieniu. Jeśli zostanie wywołane przed odblokowaniem urządzenia przez użytkownika, zostanie zgłoszony wyjątek.

Dane z zablokowanych profili służbowych

W Androidzie 8.0 wprowadzono zmiany w interfejsie, aby oddzielić dane od zablokowanego profilu służbowego.

  • Powiadomienia z aplikacji w profilu służbowym mogą teraz ukrywać swoją zawartość. Wcześniej w szufladzie powiadomień wyświetlała się zawartość aplikacji służbowych z zablokowanego profilu służbowego.
  • Ekran Ostatnie zawiera teraz zwykły panel do uruchamiania aplikacji z zablokowanego profilu służbowego. Prosty, kolorowy panel zawiera ikonę i nazwę aplikacji. Wcześniej w przypadku działań i zadań z zablokowanego profilu służbowego wyświetlany był podgląd na ekranie Ostatnie.

Integralność urządzenia

  • Flaga ENSURE_VERIFY_APPS jest teraz globalnym ograniczeniem użytkownika. Jeśli dotyczy to dowolnego użytkownika urządzenia, weryfikacja aplikacji jest wymuszana na wszystkich kontach użytkowników tego urządzenia. Jeśli na przykład właściciel profilu ustawi ograniczenie w profilu służbowym, weryfikacja aplikacji będzie wymuszana na profilu osobistym użytkownika.
  • Metoda onSystemUpdatePending() jest teraz wywoływana w przypadku właścicieli profili, a nie właścicieli urządzeń.
  • Gdy używasz klasy SystemUpdatePolicy, zasada odkładania nie jest już stosowana do poprawek zabezpieczeń, więc nie można odkładać poprawek zabezpieczeń. Nie ma to jednak wpływu na działanie innych typów zasad, takich jak automatyczne i okienkowane.
  • Właściciele urządzeń mogą resetować urządzenia do ustawień fabrycznych za pomocą funkcji wipeData(), nawet jeśli włączona jest usługa DISALLOW_FACTORY_RESET.

Stały VPN

W Androidzie 8.0 wprowadzono zmiany w interfejsie, dzięki którym użytkownicy mogą poznać stan stałego połączenia VPN:

  • Gdy stałe połączenia VPN rozłączają się lub nie mogą się połączyć, użytkownicy widzą powiadomienie, którego nie można zamknąć. Dotykając powiadomienia, wyświetlą się ustawienia konfiguracji VPN. Znika ono po ponownym połączeniu z siecią VPN lub gdy użytkownik wyłączy opcję stałego VPN.
  • Zawsze włączona sieć VPN umożliwia osobie korzystającej z urządzenia blokowanie wszystkich połączeń sieciowych, które nie korzystają z VPN. Gdy włączysz tę opcję, aplikacja Ustawienia ostrzega użytkownika, że nie będzie miał połączenia z internetem, dopóki nie nastąpi połączenie z VPN. Ustawienia zachęcą użytkownika do kontynuowania lub anulowania subskrypcji.

VpnService aplikacji VPN musi teraz wywoływać metodę startForeground() po uruchomieniu. Ponieważ system Android bezpośrednio uruchamia usługę aplikacji VPN, odpowiada ona aplikacji za przejście na pierwszy plan. Android 8.0 ukrywa aplikacje VPN, które nie przełączają usługi VPN na pierwszy plan.

Wywołania zwrotne hasła

Wywołania zwrotne związane ze zmianą hasła DeviceAdminReceiver zawierają teraz parametr user identyfikujący użytkownika lub profil, którego dotyczy hasło. Podpisy nowych metod to:

Domyślna implementacja każdej nowej metody wywołuje poprzednią wersję, pomijając argument użytkownika. Android 8.0 wycofuje poprzednie metody.

Przekazywanie dostępu do interfejsu App Management API

Te metody klasy DevicePolicyManager zostały wycofane:

Można też przekazywać jeden zakres do wielu pakietów. Oznacza to, że właściciele urządzeń i profile mogą jednocześnie przyznawać 2 różnym pakietom dostęp do tego samego zestawu interfejsów API.