Entwicklerleitfaden

Die Unternehmensfunktionen von Android bieten Organisationen eine sichere, flexible und einheitliche Android Mobility-Plattform, die Geräte, Anwendungen und Verwaltung kombiniert. Android-Apps sind standardmäßig mit den Unternehmensfunktionen von Android kompatibel. Es gibt jedoch zusätzliche Funktionen, mit denen Sie Ihre App für verwaltete Android-Geräte optimieren können:

  • Kompatibilität mit Arbeitsprofilen: Sie können Ihre Android-App so anpassen, dass sie auf verwalteten Geräten optimal funktioniert.
  • Verwaltete Konfigurationen: Ändern Sie Ihre Anwendung, damit IT-Administratoren benutzerdefinierte Einstellungen für Ihre Anwendungen festlegen können.
  • Zweckbestimmte Geräte: Optimiere deine App so, dass sie auf einem Android-Gerät als Kiosk bereitgestellt werden kann.
  • Einmalanmeldung (SSO): Vereinfacht die Anmeldung für Nutzer, die sich auf ihrem verwalteten Android-Gerät in verschiedenen Apps anmelden.

Voraussetzungen

  1. Sie haben eine Android-App erstellt.
  2. Sie können jetzt Änderungen an Ihrer App vornehmen, damit sie für Organisationen optimal funktioniert.
  3. Mindestversion: Android 5.0 Lollipop empfohlene Version: Android 6.0 Marshmallow und höher

Hinweis: Die Unternehmensfunktionen von Android sind in den meisten Geräten mit Android 5.0 integriert. Android 6.0 und höher bietet jedoch zusätzliche Funktionen, insbesondere für dedizierte Geräte.

Arbeitsprofile

Sie können die Geschäftsdaten und Anwendungen eines Nutzers über ein Arbeitsprofil verwalten. Ein Arbeitsprofil ist ein verwaltetes Unternehmensprofil, das mit dem primären Nutzerkonto auf einem Android-Gerät verknüpft ist. Mit einem Arbeitsprofil werden geschäftliche Apps und Daten sicher von privaten Apps und Daten isoliert. Dieses Arbeitsprofil befindet sich in einem anderen Container als das private Profil, das der Nutzer verwaltet. Mit diesen separaten Profilen können Organisationen die für sie wichtigen Geschäftsdaten verwalten, aber alles andere auf dem Gerät eines Nutzers bleibt unter der Kontrolle des Nutzers. Ausführliche Informationen zu den Best Practices finden Sie im Leitfaden Arbeitsprofile. Einen Überblick über diese Best Practices finden Sie unten.

Die wichtigsten Funktionen eines Arbeitsprofils

  • Separates und sicheres Profil
  • Managed Google Play für die Bereitstellung von Apps
  • Separate Apps für Arbeitsprofile
  • Verwaltungsfunktionen nur für Profile, die von einem Administrator gesteuert werden

Vorteile des Arbeitsprofils unter Android 5.0 und höher

  • Vollständige Geräteverschlüsselung
  • Ein Android Application Package (APK) für beide Profile, wenn auf dem Gerät ein persönliches und ein Arbeitsprofil vorhanden sind
  • Device Policy Controller (DPC) ist auf das Arbeitsprofil beschränkt.
  • Geräteverwaltung über die Klasse DevicePolicyManager

Überlegungen zu Arbeitsprofilen

  • Das Android-System verhindert, dass Intents Profile kreuzen, und IT-Administratoren können System-Apps aktivieren oder deaktivieren.
  • Ein Dateipfad (Uniform Resource Identifier [URI]), der für das eine Profil gültig ist, ist für das andere Profil möglicherweise nicht gültig.

Verhindern, dass Intents zwischen Profilen fehlschlagen

Es ist schwierig zu wissen, welche Intents zwischen Profilen wechseln können und welche blockiert werden. Nur durch Tests können Sie es genau herausfinden. Bevor Ihre Anwendung eine Aktivität startet, sollten Sie prüfen, ob die Anfrage aufgelöst wurde. Rufen Sie dazu Intent.resolveActivity() auf.

  • Wenn null zurückgegeben wird, wird die Anfrage nicht aufgelöst.
  • Wenn etwas zurückgegeben wird, wird angezeigt, dass der Intent aufgelöst wird, und der Intent kann ohne Bedenken gesendet werden.

Hinweis: Detaillierte Testanleitungen findest du unter Fehlgeschlagene Intents verhindern.

Dateien profilübergreifend freigeben

Einige Entwickler verwenden URIs, um Dateipfade in Android zu kennzeichnen. Da es jedoch separate Dateisysteme gibt, wenn ein Arbeitsprofil vorhanden ist, empfehlen wir Folgendes:

Verwendung:
Inhalts-URIs
  • Die Inhalts-URIs enthalten die Autorität, den Pfad und die ID für eine bestimmte Datei. Sie können dies mit der abgeleiteten FileProvider-Klasse generieren. Weitere Informationen
  • Berechtigungen für den Zugriff auf den Inhalts-URI mithilfe eines Intents freigeben und gewähren. Berechtigungen können nur mithilfe von Intents über die Profilgrenze übergeben werden. Wenn Sie mit Context.grantUriPermission() einer anderen Anwendung Zugriffsrechte für Ihre Datei gewähren, werden sie nur für diese Anwendung im selben Profil gewährt.
Nicht verwenden:
Datei-URI
  • Enthält den absoluten Pfad der Datei im Speicher des Geräts.
  • Ein Dateipfad-URI, der für ein Profil gültig ist, ist für das andere nicht gültig.
  • Wenn Sie einen Datei-URI an einen Intent anhängen, kann ein Handler nicht auf die Datei in einem anderen Profil zugreifen.

Nächste Schritte: Sobald deine Anwendung verwaltete Profile unterstützt, teste sie in einem Arbeitsprofil. Weitere Informationen finden Sie unter App testen.

Verwaltete Konfigurationen implementieren

Verwaltete Konfigurationen sind eine Reihe von Anleitungen, mit denen IT-Administratoren die Mobilgeräte ihrer Nutzer auf eine bestimmte Weise verwalten können. Diese Anleitung gilt allgemein und funktioniert für alle EMM-Anbieter, sodass Administratoren Anwendungen auf den Smartphones ihrer Nutzer remote konfigurieren können.

Wenn Sie Apps für Unternehmen oder Behörden entwickeln, müssen Sie möglicherweise branchenspezifische Anforderungen erfüllen. Mit verwalteten Konfigurationen kann der IT-Administrator per Fernzugriff Einstellungen festlegen und Richtlinien für die Android-Apps seiner Nutzer erzwingen. Beispiele:

  • Festlegen, ob eine App Daten über Mobilfunknetz/3G oder nur über WLAN synchronisieren darf
  • URLs in einem Webbrowser zulassen oder blockieren
  • E-Mail-Einstellungen einer App konfigurieren
  • Drucken aktivieren oder deaktivieren
  • Lesezeichen verwalten

Best Practices zum Implementieren verwalteter Konfigurationen

Der Leitfaden Verwaltete Konfigurationen einrichten ist die wichtigste Quelle für Informationen zum Erstellen und Bereitstellen verwalteter Konfigurationen. Nachdem Sie diese Dokumentation gelesen haben, finden Sie unten weitere Empfehlungen in den Empfehlungen.

Beim ersten Starten der App

Wenn Sie eine Anwendung starten, können Sie in onStart() oder onResume() sehen, ob bereits verwaltete Konfigurationen für diese Anwendung festgelegt wurden. Außerdem können Sie herausfinden, ob Ihre Anwendung verwaltet oder nicht verwaltet wird. Beispiel: getApplicationRestrictions() gibt Folgendes zurück:

  • Reihe von anwendungsspezifischen Einschränkungen: Sie können die verwalteten Konfigurationen im Hintergrund konfigurieren (ohne Nutzereingabe).
  • Leeres Bundle: Ihre Anwendung verhält sich so, als wäre sie nicht verwaltet (z. B. das Verhalten der Anwendung in einem privaten Profil).
  • Ein Bundle mit einem einzelnen Schlüssel/Wert-Paar, bei dem KEY_RESTRICTIONS_PENDING auf „true“ gesetzt ist: Ihre Anwendung wird verwaltet, aber der DPC ist nicht richtig konfiguriert. Sie sollten diesen Nutzer für Ihre Anwendung blockieren und ihn an seinen IT-Administrator verweisen.

Änderungen an verwalteten Konfigurationen beobachten

IT-Administratoren können verwaltete Konfigurationen und Richtlinien, die sie für ihre Nutzer erzwingen möchten, jederzeit ändern. Aus diesem Grund sollten Sie dafür sorgen, dass Ihre Anwendung neue Einschränkungen für die verwaltete Konfiguration akzeptieren kann:

  • Abrufeinschränkungen beim Start: Ihre App sollte getApplicationRestrictions() in onStart() und onResume() aufrufen und mit den alten Einschränkungen vergleichen, um festzustellen, ob Änderungen erforderlich sind.
  • Beim Laufen anhören: Registriere ACTION_APPLICATION_RESTRICTIONS_CHANGED dynamisch in deinen laufenden Aktivitäten oder Diensten, nachdem du auf neue Einschränkungen geprüft hast. Dieser Intent wird nur an Listener gesendet, die dynamisch registriert sind, und nicht an Listener, die im App-Manifest deklariert sind.
  • Registrierung während der Ausführung aufheben: In onPause() sollten Sie die Registrierung für die Übertragung von ACTION_APPLICATION_RESTRICTIONS_CHANGED aufheben.

Zweckbestimmte Geräte

Zweckbestimmte Geräte sind Kioskgeräte, die für einen einzigen Zweck eingesetzt werden, z. B. digitale Beschilderungen, Ticketdrucker oder Kassenkassen.

Wenn ein Android-Gerät als zweckbestimmtes Gerät konfiguriert ist, sieht der Nutzer eine Anwendung, die an den Bildschirm gesperrt ist und keine Schaltflächen für die Startbildschirmtaste oder die zuletzt aufgerufenen Apps hat, um die App zu verlassen. Sie können die Anwendung auch so konfigurieren, dass eine Reihe von Anwendungen angezeigt wird, z. B. ein Bibliothekskiosk mit einer App für den Bibliothekskatalog und einem Webbrowser.

Eine Anleitung dazu finden Sie unter Zweckbestimmtes Gerät.

Einmalanmeldung (SSO) mit benutzerdefinierten Chrome-Tabs einrichten

Unternehmensnutzer haben oft mehrere Apps auf ihrem Gerät und bevorzugen es, sich einmal anzumelden, um auf alle ihre geschäftlichen Anwendungen zuzugreifen. In der Regel melden sich Nutzer über ein WebView an. Es gibt jedoch einige Gründe, warum dies nicht ideal ist:

  1. Nutzer müssen sich häufig mehrmals mit denselben Anmeldedaten anmelden. Die WebView-Lösung ist oft keine echte Einmalanmeldung (SSO).
  2. Es kann Sicherheitsrisiken bestehen, z. B. durch schädliche Anwendungen, die Cookies prüfen oder JavaScript® einschleusen, um auf Nutzeranmeldedaten zuzugreifen. Selbst vertrauenswürdige Entwickler sind durch potenziell schädliche Drittanbieter-SDKs gefährdet.

Eine Lösung für beide Probleme besteht darin, Nutzer mithilfe von benutzerdefinierten Browser-Tabs anstelle von WebView zu authentifizieren. Dadurch wird Folgendes sichergestellt:

  • Erfolgt in einem sicheren Kontext (Systembrowser), in dem die Host-App keine Inhalte prüfen kann.
  • Hat einen gemeinsamen Cookiestatus, wodurch sichergestellt wird, dass sich der Nutzer nur einmal anmelden muss.

Voraussetzungen

Benutzerdefinierte Tabs werden ab API-Level 15 (Android 4.0.3) unterstützt. Sie benötigen einen unterstützten Browser wie Chrome, um benutzerdefinierte Tabs verwenden zu können. In Chrome 45 und höher wird diese Funktion als benutzerdefinierte Chrome-Tabs implementiert.

Wie implementiere ich die SSO mit benutzerdefinierten Tabs?

Google hat eine OAuth-Clientbibliothek als Open Source zur Verfügung gestellt, die benutzerdefinierte Tabs verwendet, und trägt sie zur OpenID Connect-Arbeitsgruppe der OpenID Foundation bei. Informationen zum Einrichten benutzerdefinierter Tabs für die SSO mit der AppAuth-Bibliothek finden Sie in der Dokumentation und den Beispielcode auf GitHub.

App testen

Nachdem du deine App entwickelt hast, solltest du sie sowohl in einem Arbeitsprofil als auch auf einem vollständig verwalteten Gerät testen.

Android-App mit Test-DPC testen

Wir stellen die Test-DPC-App bereit, mit der Android-Entwickler ihre Apps in einer Unternehmensumgebung testen können. Mit Test-DPC können Sie EMM-Richtlinien oder Werte für verwaltete Konfigurationen auf einem Gerät festlegen – so als würde eine Organisation das Gerät mit einem EMM verwalten. Wählen Sie eine der folgenden Methoden aus, um Test-DPC auf einem Gerät zu installieren:

  • Installieren Sie den Test-DPC über GooglePlay.
  • Erstellen Sie einen Build aus der Quelle auf GitHub.

Weitere Informationen zum Konfigurieren von Test-DPC finden Sie in der Anleitung unten und im Nutzerhandbuch für den Test-DPC.

Arbeitsprofil bereitstellen

Wenn du deine App in einem Arbeitsprofil testen möchtest, musst du zuerst mit der Test DPC App ein Arbeitsprofil auf dem Gerät bereitstellen. Gehe dazu so vor:

  1. Installieren Sie den Test-DPC auf dem Gerät.
  2. Tippen Sie im Android Launcher auf das Symbol der App Test DPC einrichten.
  3. Folge der eingeblendeten Anleitung.
  4. Installiere deine App auf dem Gerät und teste sie, um zu sehen, wie sie im Arbeitsprofil funktioniert.

Android erstellt ein Arbeitsprofil und installiert eine Kopie von Test DPC im Arbeitsprofil. Sie verwenden diese mit Arbeitsprofil gekennzeichnete Instanz von Test DPC, um Richtlinien und verwaltete Konfigurationen im Arbeitsprofil festzulegen. Weitere Informationen zum Einrichten eines Arbeitsprofils für die Entwicklung finden Sie im Entwicklerhandbuch unter Arbeitsprofile.

Vollständig verwaltetes Gerät bereitstellen

Organisationen verwenden vollständig verwaltete Geräte, da sie auf den Geräten eine breite Palette von Verwaltungsrichtlinien erzwingen können. So stellen Sie ein vollständig verwaltetes Gerät bereit:

  1. Installieren Sie den Test-DPC auf dem Gerät.
  2. Achten Sie darauf, dass auf dem Gerät keine anderen Nutzer und kein Arbeitsprofil vorhanden sind.
  3. Prüfen Sie, ob auf dem Gerät keine Konten vorhanden sind.
  4. Führen Sie den folgenden Android Debug Bridge-Befehl (adb) in Ihrem Terminal aus:
    adb shell dpm set-device-owner com.afwsamples.testdpc/.DeviceAdminReceiver
  5. Sobald Sie die Bereitstellung des Geräteeigentümers abgeschlossen haben, können Sie Ihre App auf diesem Gerät testen. Sie sollten insbesondere testen, wie verwaltete Konfigurationen und Intents auf diesem Gerät funktionieren.

Sie können auch andere Bereitstellungsmethoden verwenden. Weitere Informationen finden Sie im Test-DPC-Nutzerhandbuch. Informationen dazu, wie IT-Administratoren Android-Geräte normalerweise registrieren und bereitstellen, finden Sie unter Geräte bereitstellen.

End-to-End-Tests

Nachdem Sie Ihre Anwendung in den oben genannten Umgebungen getestet haben, sollten Sie sie wahrscheinlich in einer End-to-End-Produktionsumgebung testen. Dieser Prozess umfasst die Schritte, die ein Kunde ausführen muss, um Ihre Anwendung in seiner Organisation bereitzustellen:

  • App-Bereitstellung über Google Play
  • Serverseitig verwaltete Konfiguration
  • Richtliniensteuerung für serverseitige Profile

Für den End-to-End-Test benötigen Sie Zugriff auf eine EMM-Konsole. Am einfachsten ist es, eine Testkonsole bei deinem EMM-Anbieter anzufordern. Sobald Sie Zugriff haben, führen Sie die folgenden Aufgaben aus:

  1. Erstellen Sie eine Testversion Ihrer Anwendung mit einer neuen ApplicationId.
  2. Beanspruchen Sie eine verwaltete Google-Domain und verknüpfen Sie sie mit Ihrem EMM. Wenn Sie bereits eine Testdomain haben, die an einen EMM gebunden ist, müssen Sie die Bindung möglicherweise aufheben, um sie mit Ihrem bevorzugten EMM zu testen. Wenden Sie sich an Ihren EMM-Anbieter, um die genauen Schritte zum Aufheben der Verknüpfung zu erfahren.
  3. Veröffentlichen Sie Ihre Anwendung im privaten Kanal der verwalteten Google-Domain.
  4. Mit der EMM-Konsole und der EMM-App haben Sie folgende Möglichkeiten:
    1. Arbeitsgeräte einrichten
    2. Verbreiten Sie Ihre Anwendung.
    3. Verwaltete Konfiguration festlegen.
    4. Geräterichtlinien festlegen

Dieser Vorgang variiert je nach EMM. Weitere Informationen finden Sie in der Dokumentation Ihres EMM. Glückwunsch! Sie haben diese Schritte ausgeführt und geprüft, ob Ihre Anwendung für Unternehmensnutzer geeignet ist.