Przewodnik dla programistów

Funkcje biznesowe Androida zapewniają organizacjom bezpieczną, elastyczną i ujednoliconą platformę mobilną Android, która łączy urządzenia, aplikacje i funkcje zarządzania. Aplikacje na Androida są domyślnie zgodne z funkcjami biznesowymi Androida. Dostępne są jednak dodatkowe funkcje, dzięki którym Twoja aplikacja będzie najlepiej działać na zarządzanych urządzeniach z Androidem:

  • Zgodność profilu służbowego – zmodyfikuj aplikację na Androida, aby działała jak najlepiej na urządzeniu zarządzanym.
  • Konfiguracje zarządzane – zmodyfikuj aplikację, aby umożliwić administratorom IT określanie niestandardowych ustawień aplikacji.
  • Specjalne urządzenia – możesz zoptymalizować aplikację, aby można ją było wdrożyć na urządzeniu z Androidem jako kiosk.
  • Logowanie jednokrotne (SSO) – uprość proces logowania przez użytkowników logujących się w różnych aplikacjach na zarządzanych urządzeniach z Androidem.

Wymagania wstępne

  1. Udało Ci się utworzyć aplikację na Androida.
  2. Możesz zmodyfikować aplikację, aby była jak najlepiej dopasowana do potrzeb organizacji.
  3. Wersja minimalna: Android 5.0 Lollipop, zalecana wersja: Android 6.0 Marshmallow i nowsze.

Uwaga: funkcje biznesowe Androida są wbudowane w większość urządzeń z Androidem 5.0, jednak Android 6.0 i nowsze wersje oferują dodatkowe funkcje, zwłaszcza w przypadku urządzeń dedykowanych.

Profile służbowe

Za pomocą profilu służbowego możesz zarządzać firmowymi danymi i aplikacjami użytkownika. Profil służbowy to zarządzany profil firmowy powiązany z głównym kontem użytkownika na urządzeniu z Androidem. Profil służbowy bezpiecznie odizoluje aplikacje i dane służbowe od aplikacji i danych osobistych. Ten profil służbowy znajduje się w innym kontenerze niż profil osobisty, którym kontroluje użytkownik. Te osobne profile pozwalają organizacjom zarządzać ważnymi danymi firmowymi, ale wszystkie pozostałe dane pozostają pod kontrolą użytkownika. Szczegółowy opis sprawdzonych metod znajdziesz w przewodniku dotyczącym profili służbowych. Omówienie tych sprawdzonych metod znajdziesz poniżej.

Najważniejsze funkcje profilu służbowego

  • Oddzielny i bezpieczny profil
  • Zarządzany Sklep Google Play w celu rozpowszechniania aplikacji
  • Osobne aplikacje służbowe z plakietką
  • Funkcje zarządzania tylko profilem kontrolowane przez administratora

Zalety profilu służbowego na Androidzie 5.0 i nowszych

  • Pełne szyfrowanie urządzenia
  • 1 pakiet aplikacji na Androida (APK) na potrzeby obu profili, jeśli na urządzeniu jest profil osobisty i profil służbowy
  • Kontroler zasad dotyczących urządzeń (DPC) jest ograniczony do profilu służbowego
  • administrowanie urządzeniem za pomocą klasy DevicePolicyManager

Uwagi dotyczące profili służbowych

Zapobiegaj występowaniu błędów intencji między profilami

Trudno stwierdzić, które intencje mogą się krzyżować między profilami, a które są zablokowane. Jedynym sposobem na to, by zyskać pewność, jest testowanie. Zanim aplikacja rozpocznie aktywność, sprawdź, czy żądanie zostało rozwiązane, wywołując metodę Intent.resolveActivity().

  • Jeśli zwróci wartość null, żądanie nie zostanie rozpatrzone.
  • Jeśli coś się zwraca, oznacza to, że intencja się zamyka i można bezpiecznie wysłać intencję.

Uwaga: szczegółowe instrukcje testowania znajdziesz w artykule o zapobieganiu nieudanym intencjom.

Udostępniaj pliki w różnych profilach

Niektórzy deweloperzy używają identyfikatorów URI do oznaczania ścieżek do plików na Androidzie. Ponieważ jednak profil służbowy korzysta z osobnych systemów plików, zalecamy:

Zastosowanie:
Identyfikatory URI treści
  • Identyfikatory URI treści zawierają uprawnienia, ścieżkę i identyfikator konkretnego pliku. Możesz go wygenerować za pomocą podklasy FileProvider. Więcej informacji
  • Udostępnij identyfikator URI treści i przyznaj uprawnienia dostępu do niego za pomocą intencji. Uprawnienia można przekazywać tylko poza granice profilu za pomocą intencji. Jeśli przyznasz innej aplikacji uprawnienia dostępu do pliku za pomocą usługi Context.grantUriPermission(), zostaną one przyznane tylko tej aplikacji w tym samym profilu.
Nie używaj:
Identyfikator URI pliku
  • Zawiera ścieżkę bezwzględną do pliku w pamięci urządzenia.
  • Identyfikator URI ścieżki pliku, który jest prawidłowy w jednym profilu, nie jest prawidłowy w drugim.
  • Jeśli dołączysz identyfikator URI pliku do intencji, moduł obsługi nie będzie mógł uzyskać dostępu do pliku w innym profilu.

Dalsze kroki: gdy aplikacja obsługuje profile zarządzane, przetestuj ją w profilu służbowym. Zobacz Testowanie aplikacji.

Wdrażanie konfiguracji zarządzanych

Konfiguracje zarządzane to zestaw instrukcji, których administratorzy IT mogą używać do zarządzania urządzeniami mobilnymi użytkowników w określony sposób. Te instrukcje są uniwersalne i działają w przypadku każdego dostawcy usług EMM, dzięki czemu administratorzy mogą zdalnie konfigurować aplikacje na telefonach użytkowników.

Jeśli tworzysz aplikacje dla firm lub instytucji państwowych, może być konieczne spełnienie wymagań danej branży. Za pomocą konfiguracji zarządzanych administrator IT może zdalnie określać ustawienia i egzekwować zasady w aplikacjach na Androida należących do użytkowników, na przykład:

  • Określ, czy aplikacja może synchronizować dane przez sieć komórkową/3G czy tylko przez Wi-Fi
  • Zezwalanie na adresy URL i ich blokowanie w przeglądarce
  • Konfigurowanie ustawień poczty e-mail w aplikacji
  • Włączanie i wyłączanie drukowania
  • Zarządzaj zakładkami

Sprawdzone metody implementacji konfiguracji zarządzanych

Przewodnik Konfigurowanie konfiguracji zarządzanych jest głównym źródłem informacji o tworzeniu i wdrażaniu konfiguracji zarządzanych. Po zapoznaniu się z tą dokumentacją zapoznaj się z zaleceniami poniżej, aby uzyskać dodatkowe wskazówki.

Przy pierwszym uruchomieniu aplikacji

Gdy tylko uruchomisz aplikację, możesz sprawdzić w onStart() lub onResume(), czy są już dla niej ustawione konfiguracje zarządzane. Możesz też sprawdzić, czy Twoja aplikacja jest zarządzana czy niezarządzana. Jeśli na przykład getApplicationRestrictions() zwraca:

  • Zestaw ograniczeń specyficznych dla aplikacji – możesz skonfigurować konfiguracje zarządzane dyskretnie (bez konieczności wprowadzania danych wejściowych użytkownika).
  • Pusty pakiet – aplikacja działa tak, jakby była niezarządzana (na przykład jak działa w profilu osobistym).
  • Pakiet z pojedynczą parą klucz-wartość, w którym parametr KEY_RESTRICTIONS_PENDING ma wartość Prawda – aplikacja jest zarządzana, ale DPC nie jest prawidłowo skonfigurowana. Zablokuj temu użytkownikowi dostęp do aplikacji i skieruj go do administratora IT.

Wykrywaj zmiany w konfiguracjach zarządzanych

Administratorzy IT mogą w dowolnym momencie zmieniać konfiguracje zarządzane oraz zasady, które chcą egzekwować na kontach użytkowników. Z tego powodu zalecamy sprawdzenie, czy aplikacja akceptuje nowe ograniczenia konfiguracji zarządzanej w następujący sposób:

  • Ograniczenia pobierania podczas uruchamiania – aplikacja powinna wywołać metodę getApplicationRestrictions() w onStart() i onResume() oraz porównać ze starymi ograniczeniami, aby sprawdzić, czy konieczne są zmiany.
  • Słuchaj podczas biegu – po sprawdzeniu nowych ograniczeń możesz dynamicznie rejestrować ACTION_APPLICATION_RESTRICTIONS_CHANGED w aktywnych działaniach lub usługach. Ta intencja jest wysyłana tylko do detektorów zarejestrowanych dynamicznie, a nie do detektorów zadeklarowanych w pliku manifestu aplikacji.
  • Wyrejestruj, gdy nie działa – w onPause() należy wyrejestrować się na potrzeby transmisji ACTION_APPLICATION_RESTRICTIONS_CHANGED.

Urządzenia specjalne

Urządzenia specjalne to kioski przeznaczone do jednego celu, takie jak wyświetlacze informacyjno-reklamowe, kioski do drukowania biletów lub kasy biletowe.

Gdy urządzenie z Androidem jest skonfigurowane jako dedykowane, aplikacja jest zablokowana na ekranie i nie ma przycisków Ekran główny ani Ostatnie aplikacje w celu wyjścia z aplikacji. Na dedykowanych urządzeniach można też skonfigurować wyświetlanie zestawu aplikacji, takich jak kiosk biblioteczny z aplikacjami z katalogu bibliotecznego i przeglądarkę.

Instrukcje znajdziesz w sekcji Urządzenie dedykowane.

Konfigurowanie logowania jednokrotnego za pomocą kart niestandardowych w Chrome

Użytkownicy firm często mają na swoich urządzeniach wiele aplikacji i wolą logować się raz, aby korzystać ze wszystkich używanych do pracy. Zwykle użytkownicy logują się przez komponent WebView, jednak istnieje kilka powodów, dla których nie jest to idealne rozwiązanie:

  1. Użytkownicy często muszą logować się kilka razy przy użyciu tych samych danych logowania. Rozwiązanie WebView często nie jest prawdziwym logowaniem jednokrotnym.
  2. Może to zagrażać bezpieczeństwu, np. złośliwe aplikacje sprawdzające pliki cookie lub wstrzykując kod JavaScript®, aby uzyskać dostęp do danych logowania użytkownika. Nawet zaufani deweloperzy są narażeni na ryzyko, jeśli polegają na potencjalnie szkodliwych pakietach SDK innych firm.

Rozwiązanie obu problemów to uwierzytelnianie użytkowników za pomocą kart niestandardowych w przeglądarce zamiast WebView. Gwarantuje to, że:

  • Występuje w bezpiecznym kontekście (przeglądarce systemowej), w którym aplikacja hostująca nie może sprawdzać zawartości.
  • Ma stan współdzielonego pliku cookie, co oznacza, że użytkownik musi zalogować się tylko raz.

Wymagania

Karty niestandardowe są obsługiwane do poziomu API 15 (Android 4.0.3). Aby korzystać z kart niestandardowych, musisz mieć obsługiwaną przeglądarkę, na przykład Chrome. Chrome 45 i nowsze wersje implementują tę funkcję jako karty niestandardowe Chrome.

Jak wdrożyć logowanie jednokrotne przy użyciu kart niestandardowych?

Firma Google udostępniła bibliotekę klienta OAuth, która używa kart niestandardowych na licencji open source, dzięki czemu jest ona częścią grupy roboczej OpenID Connect fundacji OpenID Foundation. Aby skonfigurować karty niestandardowe na potrzeby logowania jednokrotnego za pomocą biblioteki AppAuth, zapoznaj się z dokumentacją i przykładowym kodem na GitHubie.

Testowanie aplikacji

Gdy utworzysz aplikację, przetestuj ją – zarówno w profilu służbowym, jak i na w pełni zarządzanym urządzeniu. Instrukcje znajdziesz poniżej.

Testowanie aplikacji na Androida za pomocą Test DPC

Udostępniamy aplikację Test DPC, aby pomóc deweloperom aplikacji na Androida testować ich aplikacje w środowisku firmowym. Przy użyciu Testowej kontrolera DPC możesz ustawiać zasady usług EMM lub zarządzane wartości konfiguracyjne na urządzeniu – tak jakby organizacja zarządzała urządzeniem przy użyciu usług EMM. Aby zainstalować Test DPC na urządzeniu, wybierz jedną z tych metod:

Więcej informacji o konfigurowaniu usługi Test DPC znajdziesz w poniższych instrukcjach i w przewodniku użytkownika tej platformy.

Udostępnij profil służbowy

Aby przetestować aplikację w profilu służbowym, musisz najpierw udostępnić profil służbowy na urządzeniu za pomocą aplikacji Test DPC. Aby to zrobić:

  1. Zainstaluj na urządzeniu Test DPC.
  2. W Menu z aplikacjami na Androidzie kliknij ikonę aplikacji Skonfiguruj Test DPC.
  3. Postępuj zgodnie z instrukcjami na ekranie.
  4. Zainstaluj aplikację na urządzeniu i przetestuj ją, aby sprawdzić, jak działa w profilu służbowym.

Android utworzy profil służbowy i zainstaluje w nim kopię testowego DPC. Za pomocą tej instancji testowej DPC z profilem służbowym możesz ustawiać zasady i zarządzane konfiguracje w profilu służbowym. Więcej informacji o konfigurowaniu profilu służbowego na potrzeby programowania znajdziesz w przewodniku dla programistów dotyczącym profili służbowych.

Udostępnianie w pełni zarządzanego urządzenia

Organizacje używają w pełni zarządzanych urządzeń, ponieważ mogą wymusić stosowanie na nich pełnego zakresu zasad zarządzania. Aby udostępnić w pełni zarządzane urządzenie, wykonaj te czynności:

  1. Zainstaluj na urządzeniu Test DPC.
  2. Upewnij się, że na urządzeniu nie ma innych użytkowników ani profilu służbowego.
  3. Upewnij się, że na urządzeniu nie ma żadnych kont.
  4. Uruchom w terminalu to polecenie Android Debug Bridge (adb):
    adb shell dpm set-device-owner com.afwsamples.testdpc/.DeviceAdminReceiver
  5. Gdy zakończysz obsługę administracyjną właściciela urządzenia, możesz przetestować na nim aplikację. Musisz w szczególności sprawdzić, jak konfiguracje zarządzane i zamiary działają na danym urządzeniu.

Możesz też użyć innych metod obsługi administracyjnej – zobacz Przewodnik użytkownika testowania DPC. Więcej informacji o tym, jak zwykle administratorzy IT rejestrują i udostępniają urządzenia z Androidem, znajdziesz w artykule Obsługa administracyjna urządzeń.

Kompleksowe testowanie

Po zakończeniu testowania aplikacji w powyższych środowiskach warto przetestować ją w pełnym środowisku produkcyjnym. Ten proces obejmuje kroki, które klient musi wykonać, aby wdrożyć aplikację w organizacji, w tym:

  • Rozpowszechnianie aplikacji w Google Play
  • Konfiguracja zarządzana po stronie serwera
  • Kontrola zasad profilu po stronie serwera

Aby przeprowadzić kompleksowe testowanie, musisz mieć dostęp do konsoli EMM. Najprostszym sposobem na uzyskanie konsoli jest przesłanie prośby o konsolę testową do usługi EMM. Po uzyskaniu dostępu wykonaj te czynności:

  1. Utwórz wersję testową swojej aplikacji z użyciem nowego identyfikatora aplikacji.
  2. Zgłoś prawa do zarządzanej domeny Google i powiąż ją z usługami EMM. Jeśli masz już domenę testową, która jest powiązana z dostawcą usług EMM, konieczne może być usunięcie powiązania, aby przetestować ją z preferowanym dostawcą usług EMM. Aby dowiedzieć się, jak usunąć powiązanie, skontaktuj się z dostawcą usług EMM.
  3. Opublikuj aplikację w kanale prywatnym zarządzanej domeny Google.
  4. W konsoli EMM i aplikacji EMM możesz wykonywać te czynności:
    1. Skonfiguruj urządzenia służbowe.
    2. Rozpowszechniaj swoją aplikację.
    3. Ustaw konfigurację zarządzaną.
    4. konfigurować zasady dotyczące urządzeń,

Ten proces może przebiegać różnie w zależności od usługi EMM. Więcej informacji znajdziesz w dokumentacji EMM. Gratulacje! Udało Ci się wykonać te czynności i sprawdzić, czy Twoja aplikacja dobrze sprawdza się w przypadku użytkowników firmowych.