Zawartość Androida 9 w przypadku aplikacji biznesowych

Na tej stronie znajdziesz przegląd interfejsów API, funkcji i zmian w działaniu dla firm dostępnych w Androidzie 9.

Interfejs profilu służbowego

Android 9 (poziom interfejsu API 28) zawiera zmiany w interfejsie w domyślnym programie uruchamiającym, aby ułatwić użytkownikom oddzielenie aplikacji osobistych od służbowych. Producenci urządzeń, którzy obsługują tę funkcję, mogą wyświetlać aplikacje użytkowników na osobnych kartach służbowych i osobistych. Ułatwiliśmy też użytkownikom urządzeń włączanie i wyłączanie profilu służbowego przez umieszczenie przełącznika na karcie Praca w programie uruchamiającym.

Rysunek 1. karty osobiste i służbowe domyślnego programu uruchamiającego z przełącznikiem profilu służbowego

W przypadku udostępniania profili służbowych i zarządzanych urządzeń Android 9 zawiera animowane ilustracje, które pomagają użytkownikom urządzeń zrozumieć te funkcje.

Przełączanie aplikacji między profilami

Android 9 zawiera interfejsy API, które umożliwiają uruchamianie kolejnej instancji aplikacji w innym profilu i ułatwiają użytkownikom przełączanie się między kontami. Na przykład aplikacja e-mailowa może udostępniać interfejs, który pozwala użytkownikowi przełączać się między profilem osobistym i służbowym w celu uzyskania dostępu do 2 kont e-mail. Wszystkie aplikacje mogą wywoływać te interfejsy API, aby uruchamiać główną aktywność tej samej aplikacji, która jest już zainstalowana w innym profilu. Aby dodać do aplikacji przełączanie kont na różnych profilach, wykonaj podane niżej czynności wywołujące metody klasy CrossProfileApps:

  1. Wywołaj getTargetUserProfiles(), aby uzyskać listę profili, w których możesz uruchomić kolejną instancję aplikacji. Ta metoda sprawdza, czy aplikacja jest zainstalowana w profilach.
  2. Wywołaj getProfileSwitchingIconDrawable(), aby uzyskać ikonę, której możesz używać do reprezentowania innego profilu.
  3. Zadzwoń pod numer getProfileSwitchingLabel(), aby uzyskać zlokalizowany tekst zachęcający użytkownika do przełączenia profili.
  4. Wywołaj startMainActivity(), aby uruchomić wystąpienie aplikacji w innym profilu.

Sprawdź, czy główne działanie, które chcesz uruchomić, jest zadeklarowane w pliku manifestu aplikacji wraz z akcją intencji ACTION_MAIN i zawiera kategorię intencji CATEGORY_LAUNCHER.

Automatyczne włączanie i wyłączanie profili służbowych

Domyślny program uruchamiający (lub aplikacje z uprawnieniami MANAGE_USERS lub MODIFY_QUIET_MODE) może włączać i wyłączać profil służbowy, wywołując UserManager.requestQuietModeEnabled(). Możesz sprawdzić zwracaną wartość, aby dowiedzieć się, czy użytkownik musi potwierdzić swoje dane logowania przed zmianą stanu. Zmiana może nie nastąpić od razu, dlatego zwróć uwagę na transmisję ACTION_MANAGED_PROFILE_AVAILABLE lub ACTION_MANAGED_PROFILE_UNAVAILABLE, aby wiedzieć, kiedy należy zaktualizować interfejs.

Aplikacja może sprawdzić stan profilu służbowego, wywołując metodę UserManager.isQuietModeEnabled().

Blokowanie dowolnej aplikacji na urządzeniu

Począwszy od Androida 9 właściciele urządzeń i właściciele profili (użytkowników pomocniczych) mogą blokować dowolną aplikację na ekranie urządzenia, przełączając ją w tryb blokowania zadań. Wcześniej deweloperzy musieli dodać obsługę trybu blokowania zadań w swoich aplikacjach. Android 9 rozszerza też interfejsy API do zadań blokowania na właścicieli profili niepowiązanych użytkowników dodatkowych. Aby zablokować aplikację na ekranie:

  1. Wywołaj DevicePolicyManager.setLockTaskPackages(), aby dodać aplikacje do listy dozwolonych w trybie blokady.
  2. Wywołaj ActivityOptions.setLockTaskEnabled(), aby włączyć tryb blokowania zadań przez aplikację z listy dozwolonych.

Aby zatrzymać aplikację w trybie blokowania zadań, usuń ją z listy dozwolonych, używając funkcji DevicePolicyManager.setLockTaskPackages().

Włącz funkcje interfejsu systemu

Gdy tryb zadań blokowania jest włączony, właściciele urządzeń i profile mogą włączyć na urządzeniu niektóre funkcje interfejsu systemu, wywołując metodę DevicePolicyManager.setLockTaskFeatures() i przekazując pole bitowe tych flag funkcji:

Możesz wywołać metodę DevicePolicyManager.getLockTaskFeatures(), aby uzyskać listę funkcji dostępnych na urządzeniu po włączeniu trybu zadań blokowania. Gdy urządzenie wyjdzie z trybu zadań blokady, powróci do stanu określonego przez inne zasady dotyczące urządzeń.

Blokuj okna błędów

W niektórych środowiskach, takich jak pokazy handlowe lub wyświetlanie informacji publicznych, możesz nie chcieć wyświetlać użytkownikom okien z błędami. Kontroler zasad dotyczących urządzeń (DPC) może blokować okna błędów systemu w przypadku aplikacji, które uległy awarii lub nie odpowiadały, dodając ograniczenie użytkownika DISALLOW_SYSTEM_ERROR_DIALOGS. Po zastosowaniu przez właściciela urządzenia to ograniczenie wpływa na wszystkie okna, ale po zastosowaniu go przez właścicieli profilu pomijane są tylko okna z błędami wyświetlane u użytkownika głównego lub dodatkowego. To ograniczenie nie dotyczy profili służbowych.

W Androidzie 9 aplikacje działające w trybie pełnoekranowym nie wyświetlają dymka z przypomnieniem w trybie blokady. Dymek z przypomnieniem to panel wyświetlany użytkownikom (przy pierwszym uruchomieniu) z wyjaśnieniem, jak wyjść z trybu pojemnego.

Obsługa wielu użytkowników na dedykowanych urządzeniach

Android 9 wprowadza koncepcję efemerycznego użytkownika w przypadku dedykowanych urządzeń (wcześniej zwanych COSU). Użytkownicy tymczasowy to użytkownicy krótkoterminowi, którzy korzystają z tego samego urządzenia. Obejmuje to publiczne sesje użytkowników na urządzeniach, takich jak kioski biblioteczne czy kioski recepcyjne, a także trwałe sesje między stałą grupą użytkowników korzystających z urządzeń, np. pracownicy zmianowi.

Użytkowników tymczasowych należy tworzyć w tle. Takie osoby są tworzone na urządzeniu jako użytkownicy pomocnicze i usuwane (wraz z powiązanymi aplikacjami i danymi) po ich zatrzymaniu, przełączeniu lub ponownym uruchomieniu urządzenia. Aby utworzyć użytkownika tymczasowego, właściciel urządzenia może:

  1. Podczas wywoływania DevicePolicyManager.createAndManageUser() ustaw flagę MAKE_USER_EPHEMERAL.
  2. Wywołaj DevicePolicyManager.startUserInBackground(), aby uruchomić użytkownika tymczasowego w tle.

Pamiętaj, że aplikacje kierowane na Androida 9 powinny wychwytywać parametr UserManager.UserOperationException podczas wywoływania kodu createAndManageUser(). Wywołaj metodę getUserOperationResult() wyjątku, aby dowiedzieć się, dlaczego użytkownik nie został utworzony.

Odbiór powiadomień o zdarzeniach

DeviceAdminReceiver otrzymuje powiadomienia o tych zdarzeniach:

Wyświetlaj użytkownikom wiadomości o wydarzeniach

Właściciele urządzeń mogą konfigurować komunikaty, które są wyświetlane użytkownikom po rozpoczęciu i zakończeniu sesji:

Wyloguj się i zatrzymuj użytkowników

Właściciele urządzeń mogą określić w DevicePolicyManager.setLogoutEnabled(), czy wylogowywanie ma być włączone dla użytkowników dodatkowych. Aby sprawdzić, czy wylogowanie jest włączone, wywołaj DevicePolicyManager.isLogoutEnabled().

Właściciele profili użytkowników pomocniczych mogą wywołać metodę DevicePolicyManager.logoutUser(), aby zatrzymać użytkownika dodatkowego i przełączyć się z powrotem na użytkownika głównego.

Właściciele urządzeń mogą za pomocą DevicePolicyManager.stopUser() zatrzymać wskazanego użytkownika dodatkowego.

Buforowanie pakietu

Aby usprawnić obsługę administracyjną użytkowników na współdzielonych urządzeniach ze stałym zestawem użytkowników, np. na urządzeniach dla pracowników zmianowych, można buforować pakiety potrzebne do obsługi sesji wielu użytkowników:

  1. Wywołaj DevicePolicyManager.setKeepUninstalledPackages(), aby określić listę pakietów, które mają być przechowywane jako pliki APK. Aby pobrać listę tych pakietów, wywołaj funkcję DevicePolicyManager.getKeepUninstalledPackages().

  2. Wywołaj DevicePolicyManager.installExistingPackage(), aby zainstalować pakiet, który został zachowany po usunięciu za pomocą setKeepUninstalledPackages().

Dodatkowe metody i stałe

Android 9 zawiera też te metody i stałe, które umożliwiają dalszą obsługę sesji użytkownika na współdzielonych urządzeniach:

Wyczyść dane pakietu i usuń konta

Właściciele urządzeń i właściciele profili mogą wywołać metodę clearApplicationUserData(), aby wyczyścić dane użytkownika w przypadku danego pakietu. Aby usunąć konto z AccountManager, właściciele urządzenia i profilu mogą zadzwonić pod numer removeAccount().

Ograniczenia dotyczące użytkowników i większa kontrola nad ustawieniami

Android 9 wprowadza zestaw ograniczeń dotyczących użytkowników DPC oraz możliwość konfigurowania punktów APN, czasu i strefy czasowej oraz ustawień systemu na urządzeniu.

Konfiguruj punkty APN

Właściciele urządzeń mogą konfigurować punkty APN na urządzeniu, używając tych metod w klasie DevicePolicyManager:

Skonfiguruj godzinę i strefę czasową

Właściciele urządzeń mogą ustawić godzinę i strefę czasową na urządzeniu, korzystając z tych metod w klasie DevicePolicyManager:

Egzekwuj ograniczenia użytkowników dotyczące ważnych ustawień

Android 9 dodaje ograniczenia dotyczące użytkowników, aby wyłączyć funkcje i ustawienia systemu. Aby dodać ograniczenie, wywołaj DevicePolicyManager.addUserRestriction() z jedną z tych stałych UserManager:

Jeśli zasady DISALLOW_CONFIG_BRIGHTNESS i DISALLOW_CONFIG_SCREEN_TIMEOUT są wymuszane na urządzeniu, właściciele urządzeń nadal mogą za pomocą interfejsu API konfigurować ustawienia jasności ekranu, trybu jasności ekranu i wygaszania ekranu.DevicePolicyManager.setSystemSetting()

Dane mierzone

Właściciele urządzeń i właściciele profili mogą uniemożliwić aplikacjom korzystanie z sieci danych na urządzeniu z pomiarem użycia danych. Sieć jest uznawana za sieć z pomiarem użycia danych, gdy użytkownik jest szczególnie wrażliwy na intensywny transfer danych z powodu kosztów, limitów danych, problemów z baterią i wydajnością. Aby uniemożliwić aplikacjom korzystanie z sieci z pomiarem użycia danych, wywołaj metodę DevicePolicyManager.setMeteredDataDisabledPackages(), która będzie przekazywać listę nazw pakietów. Aby pobrać aplikacje, które są obecnie ograniczone, wywołaj metodę DevicePolicyManager.getMeteredDataDisabledPackages().

Aby dowiedzieć się więcej o danych z pomiarem użycia danych na Androidzie, przeczytaj artykuł Optymalizowanie wykorzystania danych w sieci.

Migruj DPC

Kontrolery zasad dotyczących urządzeń (DPC) mogą przenieść własność urządzenia lub profilu służbowego na inną platformę DPC. Możesz przenieść własność, aby przenieść niektóre funkcje do Android Management API, przenieść urządzenia ze starszego DPC lub ułatwić administratorom IT migrację do usług EMM. Ponieważ zmieniasz tylko własność DPC, nie możesz użyć tej funkcji do zmiany typu zarządzania, np. przeprowadzić migracji z urządzenia zarządzanego na profil służbowy lub odwrotnie.

Możesz użyć zasobu XML zasad administrowania urządzeniami, aby wskazać, że ta wersja DPC obsługuje migrację. Docelowa jednostka DPC wskazuje, że może ona zostać właścicielem, ponieważ zawiera element o nazwie <support-transfer-ownership>. Poniższy przykład pokazuje, jak można to zrobić w pliku XML administratora urządzenia DPC:

<device-admin xmlns:android="http://schemas.android.com/apk/res/android">
    <support-transfer-ownership />
    <uses-policies>
        <limit-password />
        <watch-login />
        <reset-password />
    </uses-policies>
</device-admin>

DPC, który chce przenieść własność do nowej aplikacji DPC, może sprawdzić, czy docelowa wersja DPC obsługuje migrację, wywołując metodę DeviceAdminInfo supportsTransferOwnership(). Przed przeniesieniem własności domeny DPC musi zweryfikować docelową domenę DPC przez porównanie podpisów aplikacji. Klasa PackageManager zawiera metody do pracy z podpisami znaków kodu.

Android zachowuje system i zasady dotyczące użytkowników źródłowego DPC przez przeniesienie własności – serwery DPC nie muszą ich przenosić. Źródłowa jednostka DPC może przekazywać do niej dane niestandardowe, korzystając z par klucz-wartość w elemencie PersistableBundle. Po udanym transferze docelowa DPC może pobrać te dane, wywołując metodę DevicePolicyManager.getTransferOwnershipBundle().

Przeniesienie własności urządzenia zarządzanego lub profilu służbowego wygląda tak samo:

  1. Źródłowa DPC sprawdza, czy docelowa wersja DPC obsługuje migrację i potwierdza, że podpis aplikacji docelowej DPC pasuje do oczekiwanej wartości.
  2. Źródłowa DPC wywołuje transferOwnership(), aby rozpocząć przenoszenie.
  3. System ustawia docelową DPC jako aktywnego administratora i ustawia ją jako właściciela zarządzanego urządzenia lub profilu służbowego.
  4. Docelowa jednostka DPC odbiera wywołanie zwrotne onTransferOwnershipComplete() i może się konfigurować samodzielnie przy użyciu wartości z argumentu bundle.
  5. Jeśli podczas przenoszenia coś pójdzie nie tak, system przywraca własność do źródłowego DPC. Jeśli źródłowa DPC musi potwierdzić, że przeniesienie własności się udało, wywołaj isAdminActive(), aby sprawdzić, czy źródłowa DPC nie jest już aktywnym administratorem.

Wszystkie aplikacje uruchomione w profilu służbowym otrzymują komunikat ACTION_PROFILE_OWNER_CHANGED, gdy zmienia się właściciel profilu. Aplikacje uruchomione na urządzeniu zarządzanym otrzymują komunikat ACTION_DEVICE_OWNER_CHANGED, gdy zmienia się właściciel urządzenia.

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

Przeniesienie dwóch instancji DPC jako właściciel urządzenia i profilu odbywa się w dwóch etapach. Gdy profil osobisty i profil służbowy są powiązane, przeprowadź przenoszenie w tej kolejności:

  1. Najpierw przenieś własność profilu służbowego.
  2. Poczekaj na wywołanie zwrotne DeviceAdminReceiver onTransferAffiliatedProfileOwnershipComplete(), aby potwierdzić, że profil służbowy został przeniesiony do docelowej platformy DPC.
  3. Na koniec przenieś własność zarządzanego urządzenia na docelową DPC.

Przekładanie aktualizacji bezprzewodowych (OTA)

Właściciele urządzeń mogą opóźnić aktualizacje systemu OTA na maksymalnie 90 dni, aby zatrzymać wersję systemu operacyjnego działającą na tych urządzeniach w krytycznych okresach (np. w dni świąteczne). Po każdym ustalonym okresie blokady system wymusza stosowanie obowiązkowego 60-dniowego bufora, aby zapobiec zablokowaniu urządzenia w nieskończoność.

W okresie blokady:

  • Urządzenia nie otrzymują żadnych powiadomień o oczekujących aktualizacjach OTA.
  • Urządzenia nie instalują żadnych aktualizacji OTA w systemie operacyjnym.
  • Użytkownicy urządzeń nie mogą ręcznie sprawdzać dostępności aktualizacji OTA w Ustawieniach.

Aby ustawić okres blokady, zadzwoń pod numer SystemUpdatePolicy.setFreezePeriods(). Okres blokady powtarza się co roku, dlatego daty jego rozpoczęcia i zakończenia są przedstawiane za pomocą liczb całkowitych, które zliczają dni od początku roku. Dzień początkowy musi rozpoczynać się co najmniej 60 dni po zakończeniu dowolnego poprzedniego okresu blokady. Właściciele urządzeń mogą wywołać metodę SystemUpdatePolicy.getFreezePeriods(), aby uzyskać listę okresów blokady ustawionych wcześniej w obiekcie zasad aktualizacji systemu. Urządzenie DevicePolicyManager.getSystemUpdatePolicy() zostało zaktualizowane, aby zwracać wszystkie okresy blokady ustawione przez właściciela urządzenia.

Ograniczanie możliwości udostępniania w profilu służbowym

Właściciele profili mogą uniemożliwić użytkownikom udostępnianie danych osobistych w profilu służbowym na urządzeniu, dodając ograniczenie dotyczące użytkownika DISALLOW_SHARE_INTO_MANAGED_PROFILE. To ograniczenie uniemożliwia obsługę i udostępnianie następujących intencji:

  • Aplikacje profilu osobistego udostępniają dane i pliki aplikacjom profilu służbowego.
  • Aplikacje profilu służbowego, które wybierają elementy z profilu osobistego, np. zdjęcia lub pliki.

Po ustawieniu tego ograniczenia DPC może nadal zezwalać na różne zamiary dotyczące aktywności, wywołując metodę addCrossProfileIntentFilter().

Zabezpieczone sprzętowo klucze i certyfikaty maszyn

Android 9 dodaje interfejsy API ułatwiające pracę z kluczami i certyfikatami, które można łączyć, aby bezpiecznie identyfikować urządzenia. DPC działa w trybie właściciela profilu lub urządzenia albo instalator przekazanych certyfikatów może wykonywać te czynności:

  • generować klucze i certyfikaty na zabezpieczonym sprzęcie (takim jak TEE) lub Secure Element (SE) urządzenia z Androidem. Wygenerowane klucze nigdy nie opuszczają bezpiecznego sprzętu i można ich używać z łańcucha kluczy Android. Zadzwoń pod numer DevicePolicyManager.generateKeyPair(), aby podać algorytm (patrz KeyPairGenerator) i wszystkie identyfikatory sprzętu, które chcesz potwierdzić, takie jak numer seryjny lub IMEI. Więcej informacji o zmianach w zabezpieczeniach sprzętowych znajdziesz w artykule Ulepszenia zabezpieczeń w Androidzie 9.
  • Powiąż certyfikat z istniejącym kluczem wygenerowanym przez urządzenie. Wywołaj DevicePolicyManager.setKeyPairCertificate(), podając alias istniejącego klucza i łańcuch certyfikatów – począwszy od certyfikatu liścia, aż po łańcuch zaufania.
  • Przed użyciem klucza upewnij się, że zabezpieczony sprzęt chroni klucz. Aby sprawdzić, które mechanizmy chronią klucz, wykonaj czynności opisane w sekcji Potwierdzenie klucza.
  • Właściciele urządzeń i instalatorzy delegowanych certyfikatów mogą otrzymywać podpisane informacje o identyfikatorach sprzętowych urządzeń z wersjami systemu Android. Wywołanie DevicePolicyManager.generateKeyPair() przekazuje co najmniej 1 z parametrów ID_TYPE_BASE_INFO, ID_TYPE_SERIAL, ID_TYPE_IMEI lub ID_TYPE_MEID w argumencie idAttestationFlags. Zwrócony certyfikat zawiera identyfikatory sprzętu w rekordzie atestu. Jeśli nie chcesz uwzględniać identyfikatorów sprzętu, przekaż kod 0. Właściciele profili mogą otrzymywać tylko informacje od producenta (stosując kod ID_TYPE_BASE_INFO). Aby sprawdzić, czy urządzenie może poświadczać identyfikatory, wywołaj metodę isDeviceIdAttestationSupported().
  • Zablokuj użytkownikom urządzeń możliwość niewłaściwego korzystania z kluczy firmowych (w zadaniach innych niż firmowe), uniemożliwiając wybór certyfikatów kluczy. System nie uwzględnia w panelu selektora certyfikatów, których nie można wybrać. W metodzie wywołania zwrotnego DeviceAdminReceiver.onChoosePrivateKeyAlias() zwróć alias do klucza przedsiębiorstwa, aby system automatycznie wybrał certyfikat w imieniu użytkownika. Aby uniemożliwić wybór klucza, wywołaj te metody DevicePolicyManager:

Dzięki połączeniu tych interfejsów API firmy mogą bezpiecznie identyfikować urządzenia i potwierdzać ich integralność przed przyznaniem dostępu:

  1. Urządzenie z Androidem wygeneruje w bezpiecznym sprzęcie nowy klucz prywatny. Klucz prywatny nigdy nie opuszcza bezpiecznego sprzętu, więc pozostaje tajny.
  2. Urządzenie używa tego klucza do utworzenia żądania podpisania certyfikatu i wysłania go do serwera. Żądanie podpisania certyfikatu zawiera rekord atestu zawierający identyfikatory urządzeń.
  3. Serwer weryfikuje łańcuch certyfikatów (z dostępem do roota w ramach certyfikatu Google) i wyodrębnia metadane urządzenia z rekordu atestu.
  4. Serwer potwierdza, że zabezpieczony sprzęt chroni klucz prywatny i że identyfikatory urządzeń są zgodne z rekordami firmy. Serwer może też sprawdzić, czy wersje systemu Android i poprawek spełniają wymagania.
  5. Serwer generuje certyfikat z żądania podpisania certyfikatu i wysyła go do urządzenia.
  6. Urządzenie paruje certyfikat z kluczem prywatnym (pozostałym w zabezpieczonym sprzęcie), umożliwiając aplikacjom łączenie się z usługami korporacyjnymi.

Więcej interfejsów API, funkcji i zmian związanych z bezpieczeństwem

Identyfikatory dzienników zabezpieczeń i dzienników sieciowych

Android 9 uwzględnia identyfikatory w dziennikach zabezpieczeń i aktywności w sieci. Liczbowy identyfikator rośnie monotonicznie dla każdego zdarzenia, co ułatwia administratorom IT dostrzeganie luk w dziennikach. Dzienniki zabezpieczeń i logi sieciowe to osobne zbiory, w których system przechowuje osobne wartości identyfikatorów.

Aby uzyskać wartość identyfikatora, wywołaj SecurityEvent.getId(), DnsEvent.getId() lub ConnectEvent.getId(). System resetuje identyfikator za każdym razem, gdy DPC włączy logowanie lub gdy urządzenie uruchomi się ponownie. Dzienniki zabezpieczeń pobrane przez wywołanie metody DevicePolicyManager.retrievePreRebootSecurityLogs() nie zawierają tych identyfikatorów.

Logowanie zabezpieczeń

Logowanie zabezpieczeń przypisuje każdemu elementowi SecurityEvent poziom logowania. Aby uzyskać poziom logowania, wywołaj getLogLevel(). Ta metoda zwraca na poziomie logu jedną z tych wartości: LEVEL_INFO, LEVEL_WARNING lub LEVEL_ERROR.

Android 9 rejestruje w dziennikach zabezpieczeń zdarzenia wymienione w tabeli poniżej. Aby sprawdzić tag zdarzenia, wywołaj metodę getTag(). Aby pobrać dane zdarzenia, wywołaj metodę getData().

Oznacz opisu zdarzenia,
TAG_CERT_AUTHORITY_INSTALLED Próba zainstalowania nowego certyfikatu głównego w magazynie danych logowania systemu.
TAG_CERT_AUTHORITY_REMOVED Próba usunięcia certyfikatu głównego z magazynu danych logowania systemu.
TAG_CERT_VALIDATION_FAILURE Certyfikat Wi-Fi nie przeszedł kontroli poprawności podczas połączenia.
TAG_CRYPTO_SELF_TEST_COMPLETED System zakończył autotest kryptograficzny.
TAG_KEYGUARD_DISABLED_FEATURES_SET Aplikacja administratora wyłączała funkcje ekranu blokady urządzenia lub profilu służbowego.
TAG_KEY_DESTRUCTION Próba usunięcia klucza kryptograficznego.
TAG_KEY_GENERATED Próba wygenerowania nowego klucza kryptograficznego.
TAG_KEY_IMPORT Próba zaimportowania nowego klucza kryptograficznego.
TAG_KEY_INTEGRITY_VIOLATION Android wykrył uszkodzony klucz szyfrowania lub uwierzytelniania.
TAG_LOGGING_STARTED Logowanie zabezpieczeń rozpoczęło rejestrowanie.
TAG_LOGGING_STOPPED Logowanie zabezpieczeń przestało rejestrować.
TAG_LOG_BUFFER_SIZE_CRITICAL Bufor dziennika zabezpieczeń osiągnął 90% swojej pojemności.
TAG_MAX_PASSWORD_ATTEMPTS_SET Aplikacja administratora ustawia liczbę dozwolonych prób wpisania nieprawidłowego hasła.
TAG_MAX_SCREEN_LOCK_TIMEOUT_SET Aplikacja administratora ustawia maksymalny czas oczekiwania na blokadę ekranu.
TAG_MEDIA_MOUNT Wymienny nośnik pamięci podłączony do urządzenia.
TAG_MEDIA_UNMOUNT Urządzenie zostało odłączone.
TAG_OS_SHUTDOWN System Android został wyłączony.
TAG_OS_STARTUP System Android został uruchomiony.
TAG_PASSWORD_COMPLEXITY_SET Aplikacja administratora ustawia wymagania dotyczące złożoności haseł.
TAG_PASSWORD_EXPIRATION_SET Aplikacja administratora ustawia czas ważności hasła.
TAG_PASSWORD_HISTORY_LENGTH_SET Aplikacja administratora ustawia długość historii haseł, uniemożliwiając użytkownikom ponowne korzystanie ze starych haseł.
TAG_REMOTE_LOCK Aplikacja administratora zablokowała urządzenie lub profil służbowy.
TAG_USER_RESTRICTION_ADDED Aplikacja administratora ustawiła ograniczenie dotyczące użytkownika.
TAG_USER_RESTRICTION_REMOVED Aplikacja administratora usunęła ograniczenie dotyczące użytkownika.
TAG_WIPE_FAILURE Nie udało się wyczyścić pamięci urządzenia lub profilu służbowego.

Wyzwanie na ekranie blokady profilu służbowego

Od Androida 9 właściciele profili mogą wymagać od użytkowników ustawienia osobnego testu zabezpieczającego w profilu służbowym, korzystając z ograniczenia użytkownika DISALLOW_UNIFIED_PASSWORD. Aby sprawdzić, czy użytkownik ma ustawiony taki sam test zabezpieczający ekran blokady na urządzeniu i w profilu służbowym, wywołaj metodę DevicePolicyManager.isUsingUnifiedPassword().

Jeśli urządzenie ma oddzielny ekran blokady profilu służbowego, DevicePolicyManager.setMaximumTimeToLock() ustawia limit czasu ekranu blokady tylko dla profilu służbowego, a nie dla całego urządzenia.

Dostęp do narzędzi dla programistów

Aby dane służbowe pozostawały w profilu służbowym, narzędzie Android Debug Bridge (adb) nie ma dostępu do katalogów ani plików w profilu służbowym.

Obsługa większej liczby opcji biometrycznych

Android 9 umożliwia szczegółową kontrolę nad biometrycznym uwierzytelnianiem sprzętu na ekranie blokady profilu służbowego. Wywołaj istniejącą metodę DevicePolicyManager.setKeyguardDisabledFeatures() za pomocą KEYGUARD_DISABLE_FACE i KEYGUARD_DISABLE_IRIS. Aby wyłączyć wszystkie metody uwierzytelniania biometrycznego udostępniane przez urządzenie, dodaj KEYGUARD_DISABLE_BIOMETRICS.

Wycofanie zasad administrowania urządzeniem

Android 9 oznacza wymienione poniżej zasady jako wycofane w przypadku DPC za pomocą funkcji deviceadmin. W Androidzie 9 zasady będą nadal działać tak jak wcześniej. W Androidzie 10 i wersji 10 te same zasady będą zgłaszać wyjątek SecurityException po wywołaniu go przez administratora urządzenia.

Niektóre aplikacje używają funkcji administratora urządzenia do administrowania urządzeniami konsumenckimi. Dotyczy to na przykład zablokowania utraconego urządzenia i wyczyszczenia pamięci. Aby to umożliwić, nadal będą dostępne te zasady:

Więcej informacji o tych zmianach znajdziesz w sekcji Wycofanie funkcji przez administratora urządzenia.

Uproszczona rejestracja za pomocą kodu QR

Wbudowana biblioteka kodów QR

Android 9 ma w pakiecie bibliotekę QR, która usprawnia obsługę administracyjną urządzeń z kodem QR. Administratorzy IT nie muszą już ręcznie wpisywać danych sieci Wi-Fi, aby skonfigurować urządzenie. Zamiast tego w Androidzie 9 te dane Wi-Fi można umieścić w kodzie QR. Gdy administrator IT skanuje kod QR na urządzeniu należącym do firmy, urządzenie automatycznie łączy się z Wi-Fi i rozpoczyna proces obsługi administracyjnej bez konieczności wprowadzania dodatkowych danych ręcznych.

Metoda obsługi administracyjnej za pomocą kodu QR obsługuje te dodatki umożliwiające określenie szczegółów sieci Wi-Fi:

Ustawianie daty i strefy czasowej za pomocą dodatkowych funkcji obsługi administracyjnej

Metoda obsługi administracyjnej za pomocą kodu QR obsługuje dodatki umożliwiające ustawienie godziny i strefy czasowej na urządzeniu:

Opcje czyszczenia danych

Podczas usuwania profilu służbowego lub użytkownika pomocniczego administratorzy urządzeń mogą wyświetlać użytkownikom spersonalizowaną wiadomość. Ten komunikat pomaga użytkownikom urządzeń zrozumieć, że ich administrator IT usunął profil służbowy lub użytkownika dodatkowego. Wywołaj metodę wipeData(int, CharSequence) i podaj krótki komunikat. Jeśli zadzwoni główny użytkownik lub właściciel urządzenia, system nie wyświetli komunikatu i rozpocznie przywracanie do ustawień fabrycznych.

Aby usunąć dane subskrypcji z umieszczonej karty SIM eUICC, wywołaj metodę wipeData() i wpisz WIPE_EUICC w argumencie flags.

Metody w przypadku właścicieli powiązanych profili

Dla właścicieli powiązanych profili dostępne są te metody: