Android 6.0 (M) bietet neue Funktionen für Nutzer und App-Entwickler. Dieses Dokument bietet eine Einführung in die wichtigsten APIs.
Hier gehts los
Wenn Sie Apps für Android 6.0 erstellen möchten, müssen Sie zuerst das Android SDK herunterladen. Laden Sie dann mithilfe des SDK-Managers die Android 6.0 SDK-Plattform und die Systemimages herunter.
Ziel-API-Level aktualisieren
Wenn du deine App besser für Geräte mit Android optimieren möchtest, setze targetSdkVersion
auf "23"
, installiere deine App auf einem Android-System-Image, teste sie und veröffentliche die aktualisierte App mit dieser Änderung.
Sie können Android APIs verwenden und gleichzeitig ältere Versionen unterstützen. Fügen Sie Ihrem Code dazu Bedingungen hinzu, die das System-API-Level prüfen, bevor APIs ausgeführt werden, die von Ihrem minSdkVersion
nicht unterstützt werden.
Weitere Informationen zur Aufrechterhaltung der Abwärtskompatibilität finden Sie unter Unterstützung verschiedener Plattformversionen.
Weitere Informationen zur Funktionsweise von API-Levels finden Sie unter Was ist ein API-Level?
Authentifizierung per Fingerabdruck
Dieser Release bietet neue APIs, mit denen Sie Nutzer mithilfe ihrer Fingerabdruckscans auf unterstützten Geräten authentifizieren können. Verwenden Sie diese APIs zusammen mit dem Android-Schlüsselspeichersystem.
Um Nutzer über den Fingerabdruckscan zu authentifizieren, 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 Fingerabdrucksensor ausgeführt werden. Du musst die Benutzeroberfläche für den Vorgang zur Authentifizierung per Fingerabdruck in deiner App implementieren und das standardmäßige Android-Fingerabdrucksymbol in deiner Benutzeroberfläche verwenden.
Das Android-Fingerabdrucksymbol (c_fp_40px.png
) ist im Beispiel für die biometrische Authentifizierung enthalten.
Wenn Sie mehrere Anwendungen mit Fingerabdruckauthentifizierung entwickeln, beachten Sie, dass jede Anwendung den Fingerabdruck des Nutzers unabhängig authentifizieren muss.
Wenn du diese Funktion in deiner App verwenden möchtest, füge zuerst deinem Manifest die Berechtigung USE_FINGERPRINT
hinzu.
<uses-permission android:name="android.permission.USE_FINGERPRINT" />
Eine App-Implementierung der Fingerabdruckauthentifizierung finden Sie im Beispiel zur biometrischen Authentifizierung. Ein Beispiel dafür, wie du diese Authentifizierungs-APIs in Verbindung mit anderen Android-APIs verwenden kannst, findest du im Video Fingerprint and Payment APIs.
Wenn Sie diese Funktion testen, gehen Sie so vor:
- Installiere die Android SDK Tools Revision 24.3, wenn du dies noch nicht getan hast.
- Registrieren Sie einen neuen Fingerabdruck im Emulator. Gehen Sie dazu zu Einstellungen > Sicherheit > Fingerabdruck und folgen Sie der Anleitung zur Registrierung.
- Verwenden Sie einen Emulator, um Touch-Ereignisse für Fingerabdrücke mit dem folgenden Befehl zu emulieren. Verwenden Sie denselben Befehl, um Touch-Ereignisse für Fingerabdrücke auf dem Sperrbildschirm oder in Ihrer App zu emulieren.
adb -e emu finger touch <finger_id>
Unter Windows müssen Sie möglicherweise
telnet 127.0.0.1 <emulator-id>
gefolgt vonfinger touch <finger_id>
ausführen.
Anmeldedaten bestätigen
Nutzer können in Ihrer App basierend auf dem Zeitpunkt der letzten Entsperrung ihres Geräts authentifiziert werden. So müssen sich Nutzer keine zusätzlichen anwendungsspezifischen Passwörter merken und es ist nicht erforderlich, eine eigene Benutzeroberfläche für die Authentifizierung zu implementieren. Ihre Anwendung sollte diese Funktion in Verbindung mit einer Implementierung eines öffentlichen oder geheimen Schlüssels für die Nutzerauthentifizierung verwenden.
Wenn Sie das Zeitlimit festlegen möchten, für das derselbe Schlüssel nach der erfolgreichen Authentifizierung eines Nutzers wiederverwendet werden kann, rufen Sie beim Einrichten von KeyGenerator
oder KeyPairGenerator
die neue Methode setUserAuthenticationValidityDurationSeconds()
auf.
Vermeiden Sie es, das Dialogfeld zur erneuten Authentifizierung zu oft anzuzeigen. Ihre Anwendungen sollten zuerst versuchen, das kryptografische Objekt zu verwenden. Wenn das Zeitlimit abläuft, nutzen Sie die Methode createConfirmDeviceCredentialIntent()
, um den Nutzer innerhalb Ihrer App noch einmal zu authentifizieren.
App-Verknüpfung
Mit dieser Version wird das Intent-System von Android durch leistungsstärkere App-Verknüpfungen optimiert. Mit dieser Funktion können Sie eine App mit einer Webdomain verknüpfen, deren Inhaber Sie sind. Anhand dieser Verknüpfung kann die Plattform bestimmen, welche Standard-App für einen bestimmten Weblink verwendet werden soll, und Nutzer nicht zur Auswahl einer App auffordern. Informationen zur Implementierung dieser Funktion finden Sie unter Umgang mit App-Links.
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 ein Nutzer sein Google-Konto löscht, werden auch die Sicherungsdaten gelöscht. Informationen zur Funktionsweise dieses Features und zur Konfiguration der zu sichernden Daten im Dateisystem finden Sie unter Automatische Sicherung für Apps konfigurieren.
Direkter Anteil
In dieser Version stehen APIs zur Verfügung, die eine intuitive und schnelle Freigabe für Nutzer ermöglichen. Sie können jetzt Ziele für den direkten Anteil definieren, die eine bestimmte Aktivität in Ihrer App starten. Diese Ziele zum direkten Teilen sind für Nutzer über das Menü Teilen sichtbar. Mit dieser Funktion können Nutzer Inhalte mit Zielen wie Kontakten innerhalb anderer Apps teilen. Beispielsweise könnte das Ziel für das direkte Teilen eine Aktivität in einer anderen App eines sozialen Netzwerks starten, sodass der Nutzer Inhalte direkt mit einem bestimmten Freund oder einer bestimmten Community in dieser App teilen kann.
Zum Aktivieren von direkten Freigabezielen müssen Sie eine Klasse definieren, die die Klasse ChooserTargetService
erweitert. Ihren Dienst im Manifest deklarieren Geben Sie in dieser Deklaration die Berechtigung BIND_CHOOSER_TARGET_SERVICE
und einen Intent-Filter mithilfe der Aktion SERVICE_INTERFACE
an.
Das folgende Beispiel zeigt, wie du ChooserTargetService
in deinem Manifest deklarieren kannst.
<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üge in deinem App-Manifest 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"
hinzu.
<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 stellt eine neue API zur Sprachinteraktion zur Verfügung, mit der Sie in Kombination mit Sprachbedienung dialogorientierte Sprachfunktionen in Ihre Anwendungen einbinden können. Rufen Sie die Methode isVoiceInteraction()
auf, um zu ermitteln, ob Ihre Aktivität durch eine Sprachbedienung ausgelöst wurde. In diesem Fall kann Ihre Anwendung die Klasse VoiceInteractor
verwenden, um unter anderem eine Sprachbestätigung vom Nutzer anzufordern, Optionen aus einer Liste auszuwählen und mehr.
Die meisten Interaktionen erfolgen über die Sprachbedienung. Eine Sprachinteraktion kann jedoch auch ohne Nutzereingabe beginnen. Beispielsweise kann eine andere App, die über eine Sprachinteraktion gestartet wird, ebenfalls einen Intent zum Starten einer Sprachinteraktion senden. Wenn Sie feststellen möchten, ob Ihre Aktivität über eine Sprachanfrage eines Nutzers oder eine andere App zur Sprachinteraktion gestartet wurde, rufen Sie die Methode isVoiceInteractionRoot()
auf. 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 zum Implementieren von Sprachbedienung finden Sie auf der Entwicklerwebsite für die Sprachbedienung.
Assist API
Diese Version bietet Nutzern eine neue Möglichkeit, über einen Assistenten mit deinen Apps zu interagieren. Um diese Funktion zu verwenden, muss der Nutzer Assistant erlauben, den aktuellen Kontext zu verwenden. Nach der Aktivierung kann der Nutzer Assistant in jeder App durch langes Drücken der Startbildschirmtaste aufrufen.
Ihre App kann entscheiden, den aktuellen Kontext nicht mit dem Assistenten zu teilen, indem Sie das Flag FLAG_SECURE
setzen. Zusätzlich zu den Standardinformationen, die die Plattform an den Assistenten weitergibt, kann deine App mithilfe der neuen AssistContent
-Klasse weitere Informationen teilen.
So stellen Sie dem Assistenten zusätzlichen Kontext aus Ihrer App zur Verfügung:
- Implementieren Sie die
Application.OnProvideAssistDataListener
-Schnittstelle. - Registrieren Sie diesen Listener mit
registerOnProvideAssistDataListener()
. - Wenn du aktivitätsspezifische Kontextinformationen bereitstellen möchtest, musst du den
onProvideAssistData()
-Callback und optional den neuenonProvideAssistContent()
-Callback überschreiben.
Verwendbare Speichergeräte
Mit dieser Version können Nutzer externe Speichergeräte wie SD-Karten verwenden. Bei Verwendung eines externen Speichergeräts wird das Gerät verschlüsselt und formatiert, sodass es sich wie ein 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, ändern sich die von ihnen zurückgegebenen Dateipfade dynamisch, wenn die App zwischen internen und externen Speichergeräten verschoben wird. Beim Erstellen von Dateipfaden wird dringend empfohlen, diese APIs immer dynamisch aufzurufen. Verwenden Sie keine hartcodierten Dateipfade und behalten Sie keine voll qualifizierten Dateipfade bei, die zuvor erstellt wurden.
Context
-Methoden:ApplicationInfo
-Felder:
Zum Debuggen dieser Funktion können Sie die Übernahme eines USB-Speichers aktivieren, der über ein USB-On-the-Go-Kabel (OTG) mit einem Android-Gerät verbunden ist. Dazu führen Sie den folgenden Befehl aus:
$ adb shell sm set-force-adoptable true
Benachrichtigungen
In diesem Release werden die folgenden API-Änderungen für Benachrichtigungen hinzugefügt:
- Neue Filterebene
INTERRUPTION_FILTER_ALARMS
, die dem neuen „Nicht stören“-Modus Nur Wecker entspricht. - Neuer Wert für die Kategorie
CATEGORY_REMINDER
, der verwendet wird, um vom Nutzer geplante Erinnerungen von anderen Ereignissen (CATEGORY_EVENT
) und Weckern (CATEGORY_ALARM
) zu unterscheiden. - Neue
Icon
-Klasse, die Sie über die MethodensetSmallIcon()
undsetLargeIcon()
an Ihre Benachrichtigungen anhängen können. In ähnlicher Weise akzeptiert die MethodeaddAction()
jetzt einIcon
-Objekt anstelle einer Drawable-Ressourcen-ID. - Neue
getActiveNotifications()
-Methode, mit der deine Apps herausfinden können, welche Benachrichtigungen gerade aktiv sind.
Unterstützung für Bluetooth-Eingabestifte
Diese Version bietet eine verbesserte Unterstützung für die Nutzereingabe über einen Bluetooth-Eingabestift. Nutzer können einen kompatiblen Bluetooth-Eingabestift mit ihrem Smartphone oder Tablet koppeln und verbinden. Während die Verbindung besteht, werden Positionsinformationen vom Touchscreen mit Druck- und Tasteninformationen des Eingabestifts zusammengeführt, um einen größeren Ausdruck zu bieten als mit dem Touchscreen allein. Ihre App kann auf das Drücken von Eingabestifttasten warten und sekundäre Aktionen ausführen. Dazu registriert sie View.OnContextClickListener
- und GestureDetector.OnContextClickListener
-Objekte in Ihrer Aktivität.
Verwenden Sie die Methoden und Konstanten MotionEvent
, um Interaktionen mit Eingabestifttasten zu erkennen:
- Wenn der Nutzer einen Eingabestift mit einer Taste auf dem Bildschirm deiner App berührt, gibt die
getTooltype()
-MethodeTOOL_TYPE_STYLUS
zurück. - Für Apps, die auf Android 6.0 (API-Level 23) ausgerichtet sind, gibt die Methode
getButtonState()
BUTTON_STYLUS_PRIMARY
zurück, wenn der Nutzer die Taste für den primären Eingabestift drückt. Wenn der Eingabestift eine zweite Taste hat, gibt dieselbe MethodeBUTTON_STYLUS_SECONDARY
zurück, wenn der Nutzer darauf drückt. Wenn der Nutzer beide Schaltflächen gleichzeitig drückt, gibt die Methode beide Werte in ODER miteinander zurück (BUTTON_STYLUS_PRIMARY
|BUTTON_STYLUS_SECONDARY
). -
Für Apps, die auf eine niedrigere Plattformversion ausgerichtet sind, wird über die Methode
getButtonState()
BUTTON_SECONDARY
(beim Drücken der Haupttaste für den Eingabestift),BUTTON_TERTIARY
(beim Drücken der zweiten Eingabestifttaste) oder beides zurückgegeben.
Verbesserte Bluetooth Low Energy-Suche
Wenn deine App Bluetooth Low Energy-Scans ausführt, kannst du mit der neuen Methode setCallbackType()
angeben, dass das System Callbacks benachrichtigen soll, wenn es zum ersten Mal ein Werbepaket, das dem festgelegten ScanFilter
entspricht, findet oder nach längerer Zeit sieht. Dieser Ansatz des Scannens ist energieeffizienter als der, der in der vorherigen Plattformversion angeboten wurde.
Support für Hotspot 2.0 Version 1
Diese Version unterstützt die Hotspot 2.0 Release 1-Spezifikation auf Nexus 6- und Nexus 9-Geräten. Verwenden Sie zum Bereitstellen von Hotspot 2.0-Anmeldedaten in Ihrer App die neuen Methoden der WifiEnterpriseConfig
-Klasse, z. B. setPlmn()
und setRealm()
. 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-Anzeigemodus
Auf der Plattform können Apps jetzt ein Upgrade der Bildschirmauflösung auf 4K-Rendering auf kompatibler Hardware anfordern. Verwenden Sie die neuen Display.Mode
APIs, um die aktuelle physische Auflösung abzufragen. Wenn die UI 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 logischen Auflösung abweichen, die von getSize()
gemeldet wird.
Sie können das System auffordern, die physische Auflösung in Ihrer App während der Ausführung zu ändern. Dazu legen Sie das Attribut preferredDisplayModeId
des App-Fensters fest. Diese Funktion ist nützlich, wenn Sie zur 4K-Bildschirmauflösung wechseln möchten. Im 4K-Anzeigemodus wird die UI weiterhin in der ursprünglichen Auflösung (z. B. 1080p) gerendert und auf 4K hochskaliert. SurfaceView
-Objekte zeigen Inhalte jedoch möglicherweise in der nativen Auflösung an.
Designbare „ColorStateLists“
Designattribute werden jetzt in ColorStateList
für Geräte mit Android 6.0 (API-Level 23) unterstützt. Die Methoden Resources.getColorStateList()
und Resources.getColor()
wurden verworfen. Wenn Sie diese APIs aufrufen, rufen Sie stattdessen die neue Methode Context.getColorStateList()
oder Context.getColor()
auf. Diese Methoden sind auch in der Appcompat-Bibliothek von Version 4 über ContextCompat
verfügbar.
Audiofunktionen
Dieser Release umfasst Verbesserungen der Audioverarbeitung unter Android, darunter:
- Unterstützung für das MIDI-Protokoll mit den neuen
android.media.midi
APIs. Mit diesen APIs können Sie MIDI-Ereignisse senden und empfangen. - Mit den neuen Klassen
AudioRecord.Builder
undAudioTrack.Builder
lassen sich sowohl digitale Audioaufnahme- bzw. Wiedergabeobjekte erstellen als auch Eigenschaften von Audioquellen und -senken konfigurieren, um die Systemstandardwerte zu überschreiben. - API-Hooks zum Verknüpfen von Audio- und Eingabegeräten Das ist besonders nützlich, wenn Nutzer in Ihrer App über einen mit Android TV verbundenen Gamecontroller oder eine mit Android TV verbundene Fernbedienung eine Sprachsuche starten können. Das System ruft den neuen
onSearchRequested()
-Callback auf, wenn der Nutzer eine Suche startet. Um festzustellen, ob das Eingabegerät des Nutzers ein integriertes Mikrofon hat, rufen Sie dasInputDevice
-Objekt von diesem Callback ab und rufen Sie dann die neuehasMicrophone()
-Methode auf. - Mit der neuen Methode
getDevices()
können Sie eine Liste aller Audiogeräte abrufen, die derzeit mit dem System verbunden sind. Sie können auch einAudioDeviceCallback
-Objekt registrieren, wenn Sie möchten, dass das System Ihre App benachrichtigt, wenn ein Audiogerät eine Verbindung hergestellt oder getrennt hat.
Videofunktionen
In dieser Version werden die APIs zur Videoverarbeitung um folgende neue Funktionen erweitert:
- Neue
MediaSync
-Klasse, mit der Anwendungen Audio- und Videostreams synchron rendern können. Die Audiozwischenspeicher werden nicht blockierend gesendet und über einen Callback zurückgegeben. Außerdem wird die dynamische Wiedergaberate unterstützt. - Neues
EVENT_SESSION_RECLAIMED
-Ereignis, das darauf hinweist, dass eine von der Anwendung geöffnete Sitzung vom Ressourcenmanager freigegeben wurde. Wenn Ihre App DRM-Sitzungen verwendet, sollten Sie dieses Ereignis verarbeiten und keine reaktivierte Sitzung verwenden. - Neuer
ERROR_RECLAIMED
-Fehlercode, der darauf hinweist, dass der Ressourcenmanager die vom Codec verwendete Medienressource wiederhergestellt hat. Mit dieser Ausnahme muss der Codec freigegeben werden, da er in den Endzustand versetzt wurde. - Neue
getMaxSupportedInstances()
-Schnittstelle, um einen Hinweis auf die maximale Anzahl gleichzeitig unterstützter Codec-Instanzen zu erhalten. - Neue
setPlaybackParams()
-Methode zum Festlegen der Medienwiedergabegeschwindigkeit für schnelle oder Zeitlupe. Außerdem wird die Audiowiedergabe neben dem Video automatisch gedehnt oder beschleunigt.
Kamerafunktionen
Diese Version enthält die folgenden neuen APIs für den Zugriff auf die Taschenlampe der Kamera und für die erneute Verarbeitung von Bildern durch die Kamera:
Taschenlampen-API
Verfügt eine Kamera über eine Blitzeinheit, kannst du die Methode setTorchMode()
aufrufen, um den Taschenlampenmodus der Einheit ein- oder auszuschalten, ohne die Kamera zu öffnen. Die App ist nicht der alleinige Eigentümer des Blitzgeräts oder der Kamera. Der Taschenlampenmodus wird deaktiviert und ist nicht mehr verfügbar, wenn die Kamera nicht mehr verfügbar ist oder wenn andere Kameraressourcen, die die Taschenlampe eingeschaltet lassen, nicht mehr verfügbar sind. Andere Apps können auch setTorchMode()
aufrufen, um den Taschenlampenmodus zu deaktivieren. Wenn der Taschenlampenmodus zuletzt in der App aktiviert wurde, wird er deaktiviert.
Durch Aufrufen der Methode registerTorchCallback()
können Sie einen Callback registrieren, um über den Status des Taschenmodus informiert zu werden. Wenn der Callback zum ersten Mal registriert wird, wird er sofort mit dem Taschenmodusstatus aller derzeit bekannten Kamerageräte mit Blitzgerät aufgerufen. Wenn der Torch-Modus erfolgreich aktiviert oder deaktiviert wurde, wird die Methode onTorchModeChanged()
aufgerufen.
API für die erneute Verarbeitung
Die Camera2
API wurde erweitert, um YUV-Bilder und die erneute Verarbeitung von Bildern im privaten undurchsichtigen Format zu unterstützen. Wenn Sie feststellen möchten, ob diese Funktionen zur erneuten Verarbeitung verfügbar sind, rufen Sie getCameraCharacteristics()
auf und suchen Sie nach dem Schlüssel REPROCESS_MAX_CAPTURE_STALL
. Wenn ein Gerät die erneute Verarbeitung unterstützt, können Sie eine wiederverarbeitbare Kameraaufnahmesitzung erstellen, indem Sie createReprocessableCaptureSession()
aufrufen und Anfragen für die Neuverarbeitung von Eingabepuffern erstellen.
Verwenden Sie die Klasse ImageWriter
, um den Eingabepufferfluss mit der Eingabe für die erneute Verarbeitung der Kamera zu verbinden. Folgen Sie diesem Programmiermodell, um einen leeren Zwischenspeicher zu erhalten:
- Rufen Sie die Methode
dequeueInputImage()
auf. - Füllen Sie die Daten in den Eingabepuffer.
- Senden Sie den Zwischenspeicher an die Kamera, indem Sie die Methode
queueInputImage()
aufrufen.
Wenn Sie ein ImageWriter
-Objekt zusammen mit einem PRIVATE
-Bild verwenden, kann Ihre Anwendung nicht direkt auf die Bilddaten zugreifen. Übergeben Sie stattdessen das PRIVATE
-Image direkt an ImageWriter
, indem Sie die Methode queueInputImage()
ohne Pufferkopie aufrufen.
Die Klasse ImageReader
unterstützt jetzt Bildstreams im PRIVATE
-Format. Durch diese Unterstützung kann Ihre App eine kreisförmige Bildwarteschlange mit ImageReader
-Ausgabebildern verwalten, ein oder mehrere Bilder auswählen und sie zur erneuten Verarbeitung der Kamera an den ImageWriter
senden.
Android for Work-Funktionen
Diese Version enthält die folgenden neuen APIs für Android for Work:
- Erweiterte Steuerungsmöglichkeiten für unternehmenseigene, zweckgebundene Geräte:Der Geräteinhaber kann jetzt die folgenden Einstellungen steuern, um die Verwaltung von unternehmenseigenen, zweckgebundenen Geräten zu verbessern:
- Sie können den Keyguard mit der Methode
setKeyguardDisabled()
deaktivieren oder wieder aktivieren. - Deaktiviere oder aktiviere die Statusleiste (einschließlich der Schnelleinstellungen, Benachrichtigungen und der Wischgeste nach oben, die Google Now startet), mit der Methode
setStatusBarDisabled()
. - Deaktivieren oder aktivieren Sie Safe Boot mit der
UserManager
-KonstanteDISALLOW_SAFE_BOOT
. - Verhindere, dass sich der Bildschirm ausschaltet, während das Gerät an die Konstante
STAY_ON_WHILE_PLUGGED_IN
angeschlossen ist.
- Sie können den Keyguard mit der Methode
- Automatische Installation und Deinstallation von Apps durch Geräteinhaber: Ein Geräteinhaber kann jetzt Apps automatisch über die
PackageInstaller
APIs installieren und deinstallieren, unabhängig von Google Play for Work. Sie können Geräte jetzt über einen Geräteinhaber bereitstellen, der Apps ohne Nutzerinteraktion abruft und installiert. Diese Funktion ist nützlich, um die One-Touch-Bereitstellung von Kiosken oder anderen Geräten zu ermöglichen, ohne ein Google-Konto zu aktivieren. - Lautloser Zugriff auf Unternehmenszertifikate : Wenn eine App
choosePrivateKeyAlias()
aufruft, bevor der Nutzer aufgefordert wird, ein Zertifikat auszuwählen, kann das Profil oder der Geräteinhaber jetzt die MethodeonChoosePrivateKeyAlias()
aufrufen, um den Alias automatisch an die anfragende Anwendung weiterzugeben. Mit dieser Funktion können Sie verwalteten Apps ohne Nutzerinteraktion Zugriff auf Zertifikate gewähren. - Automatische Annahme von Systemupdates: Wenn Sie mit
setSystemUpdatePolicy()
eine Richtlinie für Systemupdates festlegen, kann ein Geräteinhaber ein Systemupdate jetzt automatisch akzeptieren, z. B. für ein Kioskgerät, oder das Update verschieben und für bis zu 30 Tage verhindern, dass es vom Nutzer ausgeführt wird. Außerdem kann ein Administrator ein tägliches Zeitfenster für die Aktualisierung festlegen, z. B. zu Zeiten, wenn ein Kioskgerät nicht verwendet wird. Wenn ein Systemupdate verfügbar ist, prüft das System, ob die Device Policy Controller-App eine Richtlinie für Systemupdates festgelegt hat, und verhält sich entsprechend. -
Installation eines delegierten Zertifikats:Ein Profil- oder Geräteinhaber kann jetzt einer Drittanbieter-App die Möglichkeit geben, diese
DevicePolicyManager
-APIs zur Zertifikatsverwaltung aufzurufen: - Tracking der Datennutzung: Ein Profil- oder Geräteinhaber kann jetzt mit den neuen
NetworkStatsManager
-Methoden die Statistiken zur Datennutzung abfragen, die unter Einstellungen > Datennutzung angezeigt werden. Profilinhabern wird automatisch die Berechtigung zum Abfragen von Daten in dem von ihnen verwalteten Profil gewährt, während Geräteinhaber Zugriff auf Nutzungsdaten des verwalteten primären Nutzers erhalten. - Verwaltung von Laufzeitberechtigungen:
Ein Profil- oder Geräteinhaber kann eine Berechtigungsrichtlinie für alle Laufzeitanfragen aller Anwendungen festlegen, die
setPermissionPolicy()
verwenden, um den Nutzer entweder zur Erteilung der Berechtigung aufzufordern oder die Berechtigung automatisch zu gewähren oder abzulehnen. Ist die letztere Richtlinie konfiguriert, kann der Nutzer die vom Profil- oder Geräteinhaber getroffene Auswahl nicht auf dem Berechtigungsbildschirm der App in den Einstellungen ändern. - VPN in den Einstellungen:VPN-Apps werden jetzt unter Einstellungen > Mehr > VPN angezeigt. Außerdem sind die Benachrichtigungen zur VPN-Nutzung jetzt spezifisch für die Konfiguration des VPN. Die Benachrichtigungen für Profilinhaber beziehen sich spezifisch darauf, ob das VPN für ein verwaltetes Profil, ein privates Profil oder beides konfiguriert ist. Für einen Geräteinhaber sind die Benachrichtigungen abhängig davon, ob das VPN für das gesamte Gerät konfiguriert ist.
- Benachrichtigung zum Arbeitsstatus:Wenn eine App aus dem verwalteten Profil eine Aktivität im Vordergrund hat, wird jetzt ein Aktentaschensymbol auf der Statusleiste angezeigt. Wenn das Gerät direkt für die Aktivität einer App im verwalteten Profil entsperrt wird, wird der Nutzer außerdem darüber informiert, dass er sich im Arbeitsprofil befindet.