APIs unter Android 6.0

Android 6.0 (M) bietet neue Funktionen für Nutzer und App-Entwickler. In diesem Dokument werden die wichtigsten APIs vorgestellt.

Hier geht es los

Wenn Sie Apps für Android 6.0 entwickeln möchten, müssen Sie zuerst das Android SDK herunterladen. Laden Sie dann mit dem SDK Manager die Android 6.0 SDK-Plattform und die Systembilder herunter.

Ziel-API-Level aktualisieren

Wenn Sie Ihre App für Geräte mit Android optimieren möchten, setzen Sie targetSdkVersion auf "23", installieren Sie die App auf einem Android-System-Image, testen Sie sie und veröffentlichen Sie die aktualisierte App mit dieser Änderung.

Sie können Android APIs verwenden und gleichzeitig ältere Versionen unterstützen, indem Sie Ihrem Code Bedingungen hinzufügen, die die System-API-Ebene prüfen, bevor APIs ausgeführt werden, die von Ihrer minSdkVersion nicht unterstützt werden. Weitere Informationen zur Abwärtskompatibilität finden Sie unter Unterstützung verschiedener Plattformversionen.

Weitere Informationen zur Funktionsweise von API-Levels finden Sie unter Was ist eine API-Ebene?

Fingerabdruck-Authentifizierung

Dieser Release umfasst neue APIs, mit denen Sie Nutzer mithilfe ihrer Fingerabdruckscans auf unterstützten Geräten authentifizieren können. Verwenden Sie diese APIs in Verbindung mit dem Android-Schlüsselspeichersystem.

Wenn Sie Nutzer über den Fingerabdruckscan authentifizieren möchten, rufen Sie eine Instanz der neuen FingerprintManager-Klasse ab und rufen Sie die Methode authenticate() auf. Ihre App muss auf einem kompatiblen Gerät mit einem Fingerabdrucksensor ausgeführt werden. Sie müssen die Benutzeroberfläche für die Fingerabdruckauthentifizierung in Ihrer App implementieren und das standardmäßige Android-Fingerabdrucksymbol in Ihrer Benutzeroberfläche verwenden. Das Android-Fingerabdrucksymbol (c_fp_40px.png) ist im Beispiel für die biometrische Authentifizierung enthalten. Wenn Sie mehrere Apps entwickeln, die die Fingerabdruckauthentifizierung verwenden, muss jede App den Fingerabdruck des Nutzers unabhängig authentifizieren.

Wenn Sie diese Funktion in Ihrer App verwenden möchten, fügen Sie zuerst die Berechtigung USE_FINGERPRINT in Ihr Manifest ein.

<uses-permission
        android:name="android.permission.USE_FINGERPRINT" />
Smartphone mit Fingerabdruckauthentifizierung

Eine App-Implementierung der Fingerabdruckauthentifizierung finden Sie im Beispiel für die biometrische Authentifizierung. Wie du diese Authentifizierungs-APIs in Verbindung mit anderen Android-APIs verwenden kannst, erfährst du im Video Fingerabdruck- und Zahlungs-APIs.

Wenn Sie diese Funktion testen, gehen Sie so vor:

  1. Installieren Sie Android SDK Tools Version 24.3, falls Sie dies noch nicht getan haben.
  2. Registrieren Sie einen neuen Fingerabdruck im Emulator. Rufen Sie dazu Einstellungen > Sicherheit > Fingerabdruck auf und folgen Sie dann der Anleitung zur Registrierung.
  3. Verwenden Sie einen Emulator, um Fingerabdruck-Berührungsereignisse mit dem folgenden Befehl zu emulieren. Mit demselben Befehl können Sie Fingerabdruck-Touch-Ereignisse auf dem Sperrbildschirm oder in Ihrer App emulieren.
    adb -e emu finger touch <finger_id>
    

    Unter Windows müssen Sie möglicherweise zuerst telnet 127.0.0.1 <emulator-id> und dann finger touch <finger_id> eingeben.

Anmeldedaten bestätigen

Ihre App kann Nutzer basierend darauf authentifizieren, wie lange es her ist, dass sie ihr Gerät entsperrt haben. Dadurch müssen sich Nutzer keine zusätzlichen anwendungsspezifischen Passwörter mehr merken und es ist nicht nötig, eine eigene Benutzeroberfläche für die Authentifizierung zu implementieren. Ihre App sollte diese Funktion in Verbindung mit einer öffentlichen oder geheimen Schlüsselimplementierung für die Nutzerauthentifizierung verwenden.

Zum Festlegen des Zeitlimits, für das derselbe Schlüssel wiederverwendet werden kann, nachdem ein Nutzer erfolgreich authentifiziert wurde, rufen Sie die neue Methode setUserAuthenticationValidityDurationSeconds() auf, wenn Sie eine KeyGenerator oder KeyPairGenerator einrichten.

Das Dialogfeld für die erneute Authentifizierung sollte nicht zu oft angezeigt werden. Ihre Apps sollten zuerst versuchen, das kryptografische Objekt zu verwenden. Wenn die Zeitüberschreitung abläuft, sollten Sie die Methode createConfirmDeviceCredentialIntent() verwenden, um den Nutzer in Ihrer App noch einmal zu authentifizieren.

App-Verknüpfung

Diese Version verbessert das Intent-System von Android durch eine effizientere App-Verknüpfung. Mit dieser Funktion können Sie eine App mit einer Webdomain verknüpfen, deren Inhaber Sie sind. Anhand dieser Verknüpfung kann die Plattform die Standard-App für die Verarbeitung eines bestimmten Weblinks ermitteln und Nutzer nicht auffordern, eine App auszuwählen. Weitere Informationen zur Implementierung dieser Funktion finden Sie unter App-Links verarbeiten.

Automatische Sicherung für Apps

Das System führt jetzt eine automatische vollständige Datensicherung und -wiederherstellung für Apps durch. Deine App muss auf Android 6.0 (API-Level 23) ausgerichtet sein, um dieses Verhalten zu ermöglichen. Du musst keinen zusätzlichen Code hinzufügen. Wenn Nutzer ihre Google-Konten löschen, werden auch ihre Sicherungsdaten gelöscht. Informationen zur Funktionsweise dieser Funktion und dazu, wie Sie konfigurieren, was im Dateisystem gesichert werden soll, finden Sie unter Automatische Sicherung für Apps konfigurieren.

Direkte Freigabe

Unterer Teil eines Smartphones mit der Funktion „Direkt teilen“

Dieser Release bietet APIs, mit denen Nutzer Inhalte intuitiv und schnell teilen können. Sie können jetzt Ziele für die direkte Freigabe definieren, über die eine bestimmte Aktivität in Ihrer App gestartet wird. Diese Ziele für die direkte Freigabe werden Nutzern über das Menü Teilen angezeigt. Mit dieser Funktion können Nutzer Inhalte in anderen Apps für Ziele wie Kontakte freigeben. Beispielsweise kann das Ziel zum direkten Teilen eine Aktivität in einer anderen App eines sozialen Netzwerks starten, wodurch der Nutzer Inhalte direkt mit einem bestimmten Freund oder einer Community in dieser App teilen kann.

Wenn Sie direkte Freigabeziele aktivieren möchten, müssen Sie eine Klasse definieren, die die Klasse ChooserTargetService erweitert. Deklarieren Sie Ihren Dienst im Manifest. Geben Sie in dieser Deklaration die Berechtigung BIND_CHOOSER_TARGET_SERVICE und einen Intent-Filter mit der Aktion SERVICE_INTERFACE an.

Das folgende Beispiel zeigt, wie Sie das ChooserTargetService in Ihrem Manifest deklarieren können.

<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>

Fügen Sie für jede Aktivität, die für ChooserTargetService sichtbar sein soll, ein <meta-data>-Element mit dem Namen "android.service.chooser.chooser_target_service" in Ihr App-Manifest ein.

<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>

Sprachinteraktionen

Dieser Release bietet eine neue Voice Interaction API, mit der Sie zusammen mit Voice Actions Konversationsfunktionen in Ihre Apps einbinden können. Rufen Sie die Methode isVoiceInteraction() auf, um zu ermitteln, ob Ihre Aktivität durch einen Sprachbefehl ausgelöst wurde. In diesem Fall kann Ihre App die Klasse VoiceInteractor verwenden, um beispielsweise eine Sprachbestätigung vom Nutzer anzufordern oder eine Auswahl aus einer Liste von Optionen zu treffen.

Die meisten Sprachinteraktionen gehen von einer Sprachaktion des Nutzers aus. Eine Aktivität der Sprachinteraktion kann jedoch auch ohne Nutzereingabe gestartet werden. Beispielsweise kann eine andere App, die über eine Sprachinteraktion gestartet wird, auch den Intent senden, eine Sprachinteraktion zu starten. Rufen Sie die Methode isVoiceInteractionRoot() auf, um zu ermitteln, ob Ihre Aktivität über eine Sprachanfrage eines Nutzers oder über eine andere App für Sprachinteraktionen gestartet wurde. Wenn eine andere App Ihre Aktivität gestartet hat, gibt die Methode false zurück. Ihre App kann den Nutzer dann auffordern, zu bestätigen, dass er diese Aktion beabsichtigt hat.

Weitere Informationen zur Implementierung von Sprachbefehlen finden Sie auf der Entwicklerwebsite für Sprachbefehle.

Assist API

Diese Version bietet Nutzern eine neue Möglichkeit, über einen Assistant mit Ihren Apps zu interagieren. Um diese Funktion nutzen zu können, muss der Nutzer Assistant erlauben, den aktuellen Kontext zu verwenden. Nach der Aktivierung kann der Nutzer Assistant in jeder App aufrufen, indem er lange auf die Startbildschirmtaste drückt.

Ihre App kann den aktuellen Kontext nicht mit dem Assistant teilen, indem Sie das Flag FLAG_SECURE setzen. Zusätzlich zu den Standardinformationen, die die Plattform an den Assistant weitergibt, kann Ihre App mithilfe der neuen AssistContent-Klasse zusätzliche Informationen freigeben.

So stellen Sie dem Assistant zusätzlichen Kontext aus Ihrer App zur Verfügung:

  1. Implementieren Sie die Application.OnProvideAssistDataListener-Schnittstelle.
  2. Registrieren Sie diesen Listener mit registerOnProvideAssistDataListener().
  3. Wenn du aktivitätsspezifische Kontextinformationen bereitstellen möchtest, überschreibe den onProvideAssistData()-Callback und optional den neuen onProvideAssistContent()-Callback.

Verwendbare Speichergeräte

Mit dieser Version können Nutzer externe Speichergeräte wie SD-Karten übernehmen. Wenn Sie ein externes Speichergerät übernehmen, wird es verschlüsselt und so formatiert, dass es sich wie interner Speicher verhält. Mit dieser Funktion können Nutzer sowohl Apps als auch private Daten dieser Apps zwischen Speichergeräten verschieben. Beim Verschieben von Apps berücksichtigt das System die android:installLocation-Einstellung im Manifest.

Wenn Ihre App auf die folgenden APIs oder Felder zugreift, beachten Sie, dass sich die zurückgegebenen Dateipfade dynamisch ändern, wenn die App zwischen internen und externen Speichergeräten verschoben wird. Wir empfehlen dringend, diese APIs beim Erstellen von Dateipfaden immer dynamisch aufzurufen. Verwenden Sie keine hartcodierten Dateipfade und speichern Sie keine zuvor erstellten vollqualifizierten Dateipfade.

Wenn Sie diese Funktion debuggen möchten, können Sie die Verwendung eines USB-Speichers aktivieren, der über ein USB On-The-Go-Kabel (OTG) mit einem Android-Gerät verbunden ist. Führen Sie dazu diesen Befehl aus:

$ adb shell sm set-force-adoptable true

Benachrichtigungen

In dieser Version wurden die folgenden API-Änderungen für Benachrichtigungen hinzugefügt:

Bluetooth-Eingabestift-Unterstützung

In dieser Version wird die Nutzereingabe über einen Bluetooth-Stylus verbessert unterstützt. Nutzer können einen kompatiblen Bluetooth-Stylus mit ihrem Smartphone oder Tablet koppeln und verbinden. Wenn die Geräte verbunden sind, werden Positionsinformationen des Touchscreens mit Druck- und Tasteninformationen des Eingabestifts kombiniert, um mehr Ausdrucksmöglichkeiten zu bieten als nur mit dem Touchscreen. Ihre App kann auf das Drücken der Eingabestifttaste reagieren und sekundäre Aktionen ausführen, indem Sie View.OnContextClickListener- und GestureDetector.OnContextClickListener-Objekte in Ihren Aktivitäten registrieren.

Verwenden Sie die MotionEvent-Methoden und ‑Konstanten, um Interaktionen mit der Eingabestifttaste zu erkennen:

  • Wenn der Nutzer einen Eingabestift mit einer Schaltfläche auf dem Display Ihrer App berührt, gibt die Methode getTooltype() TOOL_TYPE_STYLUS zurück.
  • Bei Apps, die auf Android 6.0 (API-Level 23) ausgerichtet sind, gibt die Methode getButtonState() BUTTON_STYLUS_PRIMARY zurück, wenn der Nutzer die primäre Stifttaste drückt. Wenn der Eingabestift eine zweite Schaltfläche hat, gibt dieselbe Methode BUTTON_STYLUS_SECONDARY zurück, wenn der Nutzer darauf drückt. Wenn der Nutzer beide Tasten gleichzeitig drückt, gibt die Methode beide Werte zurück, die mit ODER verknüpft sind (BUTTON_STYLUS_PRIMARY|BUTTON_STYLUS_SECONDARY).
  • Bei Apps, die auf eine niedrigere Plattformversion ausgerichtet sind, gibt die Methode getButtonState() entweder BUTTON_SECONDARY (für das Drücken der primären Eingabestifttaste), BUTTON_TERTIARY (für das Drücken der sekundären Eingabestifttaste) oder beides zurück.

Verbesserte Bluetooth Low Energy-Suche

Wenn deine App Bluetooth Low Energy-Scans durchführt, kannst du mit der neuen Methode setCallbackType() angeben, dass das System Callbacks benachrichtigen soll, wenn es ein Advertising-Paket, das dem Satz ScanFilter entspricht, zum ersten Mal oder nach längerer Zeit findet. Dieser Ansatz ist energieeffizienter als der in der vorherigen Plattformversion.

Unterstützung für Hotspot 2.0 Release 1

Dieses Release bietet Unterstützung für die Hotspot 2.0 Release 1-Spezifikation auf Nexus 6 und Nexus 9. Verwenden Sie die neuen Methoden der Klasse WifiEnterpriseConfig, z. B. setPlmn() und setRealm(), um Hotspot 2.0-Anmeldedaten in Ihrer App bereitzustellen. Im WifiConfiguration-Objekt können Sie die Felder FQDN und providerFriendlyName festlegen. Die neue Methode isPasspointNetwork() gibt an, ob ein erkanntes Netzwerk einen Hotspot 2.0-Zugangspunkt darstellt.

4K-Displaymodus

Auf der Plattform können Apps jetzt anfordern, dass die Displayauflösung auf kompatibler Hardware auf 4K-Rendering umgestellt wird. Verwenden Sie die neuen Display.Mode APIs, um die aktuelle physische Auflösung abzufragen. Wenn die Benutzeroberfläche mit einer niedrigeren logischen Auflösung gezeichnet und auf eine größere physische Auflösung hochskaliert wird, kann die von der Methode getPhysicalWidth() zurückgegebene physische Auflösung von der von getSize() gemeldeten logischen Auflösung abweichen.

Sie können das System bitten, die physische Auflösung in Ihrer App während der Ausführung zu ändern, indem Sie die Eigenschaft preferredDisplayModeId des Fensters Ihrer App festlegen. Diese Funktion ist nützlich, wenn Sie zur 4K-Displayauflösung wechseln möchten. Im 4K-Displaymodus wird die Benutzeroberfläche weiterhin mit der ursprünglichen Auflösung (z. B. 1080p) gerendert und auf 4K hochskaliert. Bei SurfaceView-Objekten werden Inhalte jedoch möglicherweise in der nativen Auflösung angezeigt.

Stilbare ColorStateLists

In ColorStateList werden jetzt auf Geräten mit Android 6.0 (API-Level 23) Themenattribute unterstützt. Die Methoden Resources.getColorStateList() und Resources.getColor() sind veraltet. Wenn Sie diese APIs aufrufen, verwenden Sie stattdessen die neuen Methoden Context.getColorStateList() oder Context.getColor(). Diese Methoden sind auch in der v4-Appcompat-Bibliothek über ContextCompat verfügbar.

Audiofunktionen

Dieser Release enthält Verbesserungen bei der Audioverarbeitung unter Android, darunter:

  • Unterstützung für das MIDI-Protokoll mit den neuen android.media.midi APIs Verwenden Sie diese APIs zum Senden und Empfangen von MIDI-Ereignissen.
  • Neue AudioRecord.Builder- und AudioTrack.Builder-Klassen zum Erstellen digitaler Audioaufnahme- und ‑Wiedergabeobjekte sowie zum Konfigurieren von Audioquelle- und ‑Senke-Eigenschaften, um die Systemstandardeinstellungen zu überschreiben.
  • API-Hooks zum Verknüpfen von Audio- und Eingabegeräten. Das ist besonders nützlich, wenn Nutzer in Ihrer App eine Sprachsuche über einen Gamecontroller oder eine Fernbedienung starten können, die mit Android TV verbunden ist. Das System ruft den neuen onSearchRequested()-Callback auf, wenn der Nutzer eine Suche startet. Wenn du herausfinden möchtest, ob das Eingabegerät des Nutzers ein integriertes Mikrofon hat, ruf das InputDevice-Objekt aus diesem Callback ab und rufe dann die neue hasMicrophone()-Methode auf.
  • Neue getDevices()-Methode, mit der du eine Liste aller Audiogeräte abrufen kannst, die derzeit mit dem System verbunden sind. Sie können auch ein AudioDeviceCallback-Objekt registrieren, wenn das System Ihre App benachrichtigen soll, wenn ein Audiogerät eine Verbindung herstellt oder trennt.

Videofunktionen

In diesem Release werden den APIs zur Videoverarbeitung neue Funktionen hinzugefügt, darunter:

  • Neue MediaSync-Klasse, die Anwendungen beim synchronen Rendern von Audio- und Videostreams unterstützt. Die Audio-Buffer werden nicht blockierend gesendet und über einen Rückruf zurückgegeben. Außerdem wird die dynamische Wiedergaberate unterstützt.
  • Neues EVENT_SESSION_RECLAIMED-Ereignis, das angibt, dass eine von der App geöffnete Sitzung vom Ressourcenmanager zurückgefordert wurde. Wenn Ihre App DRM-Sitzungen verwendet, sollten Sie dieses Ereignis verarbeiten und darauf achten, keine wiedergewonnene Sitzung zu verwenden.
  • Neuer ERROR_RECLAIMED-Fehlercode, der angibt, dass der Ressourcenmanager die vom Codec verwendete Medienressource zurückgefordert hat. Mit dieser Ausnahme muss der Codec freigegeben werden, da er in den Terminalstatus versetzt wurde.
  • Neue getMaxSupportedInstances()-Benutzeroberfläche, über die du einen Hinweis zur maximalen Anzahl der unterstützten parallelen Codec-Instanzen erhältst.
  • Neue setPlaybackParams()-Methode zum Festlegen der Medienwiedergabegeschwindigkeit für die Wiedergabe in Zeitlupe oder Zeitraffer. Außerdem wird die Audiowiedergabe automatisch in Verbindung mit dem Video verlangsamt oder beschleunigt.

Kamerafunktionen

Diese Version enthält die folgenden neuen APIs für den Zugriff auf die Taschenlampe der Kamera und für die Neuverarbeitung von Bildern durch die Kamera:

Flashlight-API

Wenn eine Kamera einen Blitz hat, können Sie die Methode setTorchMode() aufrufen, um den Taschenlampenmodus des Blitzes ein- oder auszuschalten, ohne die Kamera zu öffnen. Die App hat nicht die alleinige Kontrolle über den Blitz oder die Kamera. Der Taschenlampenmodus wird deaktiviert und ist nicht verfügbar, wenn die Kamera nicht verfügbar ist oder wenn andere Kameraressourcen, die die Taschenlampe eingeschaltet halten, nicht verfügbar sind. Andere Apps können auch setTorchMode() aufrufen, um den Taschenlampenmodus zu deaktivieren. Wenn die letzte App geschlossen wird, die den Taschenlampenmodus aktiviert hat, wird der Taschenlampenmodus deaktiviert.

Sie können einen Rückruf registrieren, um benachrichtigt zu werden, wenn der Taschenlampenmodus aktiviert ist. Rufen Sie dazu die Methode registerTorchCallback() auf. Wenn der Callback zum ersten Mal registriert wird, wird er sofort mit dem Taschenlampenmodus-Status aller derzeit bekannten Kamerageräte mit einer Blitzeinheit aufgerufen. Wenn der Taschenlampenmodus erfolgreich aktiviert oder deaktiviert wurde, wird die Methode onTorchModeChanged() aufgerufen.

Reprocessing API

Die Camera2 API wurde um die Unterstützung der Bildverarbeitung in YUV und privaten opaken Formaten erweitert. Wenn Sie wissen möchten, ob diese Funktionen zur erneuten Verarbeitung verfügbar sind, rufen Sie getCameraCharacteristics() auf und prüfen Sie, ob der Schlüssel REPROCESS_MAX_CAPTURE_STALL vorhanden ist. Wenn ein Gerät die Nachbearbeitung unterstützt, können Sie eine wiederverwendbare Kameraaufnahmesitzung erstellen, indem Sie createReprocessableCaptureSession() aufrufen, und Anfragen für die Nachbearbeitung des Eingabepuffers erstellen.

Verwende die Klasse ImageWriter, um den Eingabepufferfluss mit dem Eingang für die Kamera-Vorverarbeitung zu verbinden. So erhalten Sie einen leeren Puffer:

  1. Rufen Sie die Methode dequeueInputImage() auf.
  2. Fülle den Eingabepuffer mit den Daten.
  3. Senden Sie den Puffer an die Kamera, indem Sie die Methode queueInputImage() aufrufen.

Wenn Sie ein ImageWriter-Objekt zusammen mit einem PRIVATE-Bild verwenden, kann Ihre App nicht direkt auf die Bilddaten zugreifen. Übergeben Sie das PRIVATE-Bild stattdessen direkt an die ImageWriter, indem Sie die Methode queueInputImage() ohne Pufferkopie aufrufen.

Die ImageReader-Klasse unterstützt jetzt Bildstreams im PRIVATE-Format. Mit dieser Unterstützung kann Ihre App eine kreisförmige Bildwarteschlange mit ImageReader-Ausgabebildern verwalten, ein oder mehrere Bilder auswählen und zur erneuten Verarbeitung durch die Kamera an die ImageWriter senden.

Funktionen von Android for Work

Diese Version enthält die folgenden neuen APIs für Android for Work:

  • Erweiterte Einstellungen für unternehmenseigene, zweckbestimmte Geräte:Der Geräteeigentümer kann jetzt die folgenden Einstellungen verwalten, um die Verwaltung unternehmenseigener, zweckbestimmter Geräte zu verbessern:
    • Deaktivieren oder aktivieren Sie den Keyguard mit der Methode setKeyguardDisabled().
    • Sie können die Statusleiste (einschließlich Schnelleinstellungen, Benachrichtigungen und der Wischgeste nach oben, mit der Google Now gestartet wird) mit der Methode setStatusBarDisabled() deaktivieren oder wieder aktivieren.
    • Deaktivieren oder reaktivieren Sie Secure Boot mit der Konstante UserManager.DISALLOW_SAFE_BOOT
    • Verhindern, dass sich das Display ausschaltet, während es angeschlossen ist, mit der Konstante STAY_ON_WHILE_PLUGGED_IN
  • Lautlose Installation und Deinstallation von Apps durch Geräteeigentümer:Geräteeigentümer können jetzt unabhängig von Google Play for Work über die PackageInstaller APIs Apps geräuschlos installieren und deinstallieren. Sie können jetzt Geräte über einen Geräteeigentümer bereitstellen, der Apps ohne Nutzerinteraktion abruft und installiert. Diese Funktion ist nützlich, um die One-Touch-Bereitstellung von Kiosken oder anderen ähnlichen Geräten zu ermöglichen, ohne ein Google-Konto zu aktivieren.
  • Leiser Zugriff auf Unternehmenszertifikate : Wenn eine App choosePrivateKeyAlias() aufruft, bevor der Nutzer aufgefordert wird, ein Zertifikat auszuwählen, kann der Profil- oder Geräteinhaber jetzt die Methode onChoosePrivateKeyAlias() aufrufen, um den Alias automatisch an die anfragende Anwendung weiterzugeben. Mit diesem Feature können Sie verwalteten Anwendungen ohne Nutzerinteraktion Zugriff auf Zertifikate gewähren.
  • Automatische Annahme von Systemupdates Durch Festlegen einer Richtlinie für Systemupdates mit setSystemUpdatePolicy() kann ein Geräteeigentümer ein Systemupdate jetzt automatisch akzeptieren, z. B. bei einem Kioskgerät, oder das Update verschieben und verhindern, dass es vom Nutzer innerhalb von 30 Tagen durchgeführt wird. Außerdem kann ein Administrator ein tägliches Zeitfenster festlegen, in dem ein Update durchgeführt werden muss, z. B. während der Stunden, in denen ein Kioskgerät nicht verwendet wird. Wenn ein Systemupdate verfügbar ist, prüft das System, ob die App „Device Policy Controller“ eine Richtlinie für Systemupdates festgelegt hat, und verhält sich entsprechend.
  • Installation von delegierten Zertifikaten:Ein Profil oder Geräteinhaber kann jetzt einer Drittanbieter-App die Berechtigung erteilen, die folgenden DevicePolicyManager APIs zur Zertifikatsverwaltung aufzurufen:
  • Mobilgerät, auf dem die Benachrichtigungsfunktion zum Arbeitsstatus in Android for Work angezeigt wird
  • Erfassung der Datennutzung: Profilinhaber oder Geräteeigentümer können jetzt mithilfe der neuen NetworkStatsManager-Methoden die Statistiken zur Datennutzung abfragen, die unter Einstellungen > Daten angezeigt werden. Profilinhaber erhalten automatisch die Berechtigung, Daten zu dem von ihnen verwalteten Profil abzufragen. Geräteinhaber erhalten Zugriff auf die Nutzungsdaten des verwalteten primären Nutzers.
  • Verwaltung von Laufzeitberechtigungen:

    Ein Profil- oder Geräteinhaber kann eine Berechtigungsrichtlinie für alle Laufzeitanfragen aller Anwendungen mit setPermissionPolicy() festlegen, um den Nutzer entweder zum Gewähren der Berechtigung aufzufordern oder die Berechtigung automatisch zu gewähren oder abzulehnen. Wenn diese Richtlinie festgelegt ist, kann der Nutzer die vom Profil- oder Geräteinhaber auf dem Berechtigungsbildschirm der App in den Einstellungen getroffene Auswahl nicht ändern.

  • VPN in den Einstellungen:VPN-Apps sind jetzt unter Einstellungen > Mehr > VPN zu sehen. Außerdem sind die Benachrichtigungen zur VPN-Nutzung jetzt spezifisch für die Konfiguration des VPN. Für Profilinhaber hängen die Benachrichtigungen davon ab, ob das VPN für ein verwaltetes Profil, ein privates Profil oder beides konfiguriert ist. Für einen Geräteinhaber gelten die Benachrichtigungen dafür, ob das VPN für das gesamte Gerät konfiguriert ist.
  • Benachrichtigung zum Arbeitsstatus:Wenn eine App aus dem verwalteten Profil im Vordergrund aktiv ist, wird jetzt ein Aktentaschensymbol in der Statusleiste angezeigt. Wenn das Gerät direkt für die Aktivität einer App im verwalteten Profil entsperrt wird, wird der Nutzer darüber informiert, dass er sich im Arbeitsprofil befindet.