Android 13 bietet tolle neue Funktionen und APIs für Entwickler. In den folgenden Abschnitten erfahren Sie mehr über Funktionen für Ihre Apps und erhalten einen Einstieg in die zugehörigen APIs.
Eine detaillierte Liste der neuen, geänderten und entfernten APIs finden Sie im API-Diff-Bericht. Weitere Informationen zu neuen APIs finden Sie in der Android API-Referenz. Neue APIs sind hervorgehoben. Informationen zu Bereichen, in denen sich Plattformänderungen auf Ihre Apps auswirken können, finden Sie in den Änderungen am Verhalten von Android 13 für Apps, die auf Android 13 ausgerichtet sind und in den Änderungen am Verhalten von Android 13 für alle Apps.
Produktivität und Tools für Entwickler
Designs für App-Symbole
Ab Android 13 können Sie thematische App-Symbole aktivieren. Mit dieser Funktion werden App-Symbole in unterstützten Android-Launchern eingefärbt, um die Farbgebung des ausgewählten Hintergrunds und anderer Themen des Nutzers zu übernehmen.
Damit diese Funktion unterstützt wird, muss Ihre App sowohl ein adaptives Symbol als auch ein einfarbiges App-Symbol enthalten. Außerdem muss das einfarbige App-Symbol über das Element <adaptive-icon>
im Manifest referenziert werden. Wenn ein Nutzer thematische App-Symbole aktiviert hat (d. h. die Option Thematische Symbole in den Systemeinstellungen aktiviert hat) und der Launcher diese Funktion unterstützt, verwendet das System die Farben des ausgewählten Hintergrunds und des ausgewählten Designs des Nutzers, um die Tönung zu bestimmen, die dann auf das einfarbige App-Symbol angewendet wird.
In den folgenden Fällen wird auf dem Startbildschirm NICHT das App-Symbol des Designs, sondern das adaptive oder standardmäßige App-Symbol angezeigt:
- Wenn der Nutzer keine symboldesigns für Apps aktiviert hat
- Wenn Ihre App kein einfarbiges App-Symbol hat
- Wenn der Launcher keine App-Symbole mit Design unterstützt
Weitere Informationen und eine Anleitung finden Sie im Hilfeartikel Adaptive Symbole.
App-spezifische Spracheinstellungen
Häufig legen mehrsprachige Nutzer für ihre Systemsprache eine Sprache fest, z. B. Englisch, möchten bestimmte Apps aber in anderen Sprachen nutzen, z. B. auf Niederländisch, Chinesisch oder Hindi. Damit Apps für diese Nutzer besser geeignet sind, werden in Android 13 die folgenden Funktionen für Apps eingeführt, die mehrere Sprachen unterstützen:
Systemeinstellungen: Zentraler Ort, an dem Nutzer eine bevorzugte Sprache für jede App auswählen können.
Ihre App muss das Attribut
android:localeConfig
im Manifest der App angeben, um dem System mitzuteilen, dass sie mehrere Sprachen unterstützt. Weitere Informationen finden Sie in der Anleitung zum Erstellen einer Ressourcendatei und Deklarieren in der Manifestdatei Ihrer App.Zusätzliche APIs: Mit diesen öffentlichen APIs, z. B. den Methoden
setApplicationLocales()
undgetApplicationLocales()
inLocaleManager
, können Apps zur Laufzeit eine andere Sprache als die Systemsprache festlegen.Diese APIs werden automatisch mit den Systemeinstellungen synchronisiert. Apps, die diese APIs verwenden, um benutzerdefinierte In-App-Sprachauswahlen zu erstellen, bieten Nutzern daher eine einheitliche Benutzeroberfläche, unabhängig davon, wo sie ihre Spracheinstellungen auswählen. Mit den öffentlichen APIs können Sie auch den Boilerplate-Code reduzieren. Außerdem unterstützen sie unterteilte APKs und die automatische Sicherung für Apps, um die Spracheinstellungen der Nutzer auf App-Ebene zu speichern.
Aus Gründen der Abwärtskompatibilität mit früheren Android-Versionen sind entsprechende APIs auch in AndroidX verfügbar. Wir empfehlen die Verwendung der APIs, die in Appcompat 1.6.0-beta01 oder höher hinzugefügt wurden.
Apps, die keine Sprachen unterstützen, sind von diesen Änderungen nicht betroffen.
Verbesserte Unterstützung für Text und Sprache
Android 13 enthält mehrere Funktionen und Verbesserungen bei Text und Sprache, mit denen Sie die Nutzerfreundlichkeit verbessern können. Diese werden in den folgenden Abschnitten beschrieben:
Schnellere Silbentrennung
Durch das Trennzeichen wird der umgebrochene Text leichter lesbar und Ihre Benutzeroberfläche wird flexibler. Ab Android 13 wurde die Silbentrennung um bis zu 200% optimiert. Sie können sie also in Ihrer TextView
aktivieren, ohne dass sich das merklich auf die Renderingleistung auswirkt. Wenn Sie die Silbentrennung beschleunigen möchten, verwenden Sie die Frequenzen fullFast
oder normalFast
in setHyphenationFrequency()
.
Textkonvertierungs-APIs
Nutzer von Sprachen wie Japanisch und Chinesisch verwenden Eingabemethoden für phonetische Buchstaben, was die Suche und Funktionen wie die automatische Vervollständigung oft verlangsamt. In Android 13 können Apps die neue Textkonvertierungs-API aufrufen, damit Nutzer schneller und einfacher das Gesuchte finden. Bisher musste ein japanischer Nutzer beispielsweise so vorgehen, um etwas zu suchen:
- Hiragana als phonetische Aussprache des Suchbegriffs eingeben (z. B. ein Ort oder ein App-Name)
- Hiragana-Zeichen mit der Tastatur in Kanji umwandeln
- Noch einmal mit den Kanji-Zeichen suchen
- Endlich Suchergebnisse erhalten
Mit der neuen Textkonvertierungs-API können japanische Nutzer Hiragana eingeben und sofort Kanji-Suchergebnisse sehen, ohne die Schritte 2 und 3 ausführen zu müssen.
Verbesserte Zeilenhöhen für nicht lateinische Schriften
In Android 13 wird die Darstellung nicht lateinischer Schriften wie Tamil, Birmanisch, Telugu und Tibetisch verbessert. Dazu wird eine für jede Sprache angepasste Zeilenhöhe verwendet. Die neuen Zeilenhöhen verhindern das Abschneiden von Text und verbessern die Positionierung der Zeichen. Sie können diese Verbesserungen für Ihre App nutzen, indem Sie sie auf Android 13 ausrichten. Testen Sie Ihre Apps unbedingt, wenn Sie das neue Zeilenabstand verwenden, da sich die Änderungen auf die Benutzeroberfläche in nicht lateinischen Sprachen auswirken können.
Verbesserter Textumbruch für japanische Texte
Ab Android 13 können TextViews Text nach Bunsetsu (die kleinste natürliche Worteinheit) oder nach Wortgruppen statt nach Zeichen umbrechen, um japanische Apps ansprechender und leserlicher zu gestalten. Sie können diesen Umbruch nutzen, indem Sie android:lineBreakWordStyle="phrase"
mit TextViews verwenden.
Unicode-Bibliotheksupdates
Android 13 enthält die neuesten Verbesserungen, Fehlerkorrekturen und Änderungen aus Unicode ICU 70, Unicode CLDR 40 und Unicode 14.0.
Hier sind einige wichtige Änderungen:
- Für „Englisch (Kanada)“
en‑CA
und „Englisch (Republik der Philippinen)“en‑PH
werden bei fehlenden Übersetzungsressourcen Übersetzungsressourcen für „Englisch (Vereinigte Staaten)“en
anstelle von „Englisch (Vereinigtes Königreich)“en‑GB
verwendet. - Die Pluralkategorie
many
wurde für Spanisches
, Italienischit
, Portugiesischpt
und Portugiesisch (Portugal)pt‑PT
eingeführt. Ähnlich wie im Französischen, das in CLDR v38 eingeführt wurde, wird diese Option für große Zahlen verwendet.
Farbige Vektorschriften
Ab Android 13 unterstützt das System das Rendern von COLR-Version 1-Schriftarten (COLRv1) und aktualisiert die System-Emojis in das COLRv1-Format. COLRv1 ist ein äußerst kompaktes Schriftformat, das in jeder Größe schnell und gestochen scharf gerendert wird.
Bei den meisten Apps übernimmt das System alles und COLRv1 funktioniert einfach. Wenn Ihre App jedoch eine eigene Textdarstellung implementiert und die Systemschriften verwendet, empfehlen wir, das Emoji-Rendering zu testen.
Weitere Informationen zu COLRv1 finden Sie in den folgenden Ressourcen:
- Ankündigung im Chrome Developers-Blog
- COLRv1-Farbvektorschriften in Chrome (Video)
- COLR-Tabellenspezifikation
Placement API für die Schnelleinstellungen
Über die Schnelleinstellungen im Benachrichtigungs-Schieberegler können Nutzer ganz einfach Einstellungen ändern oder schnell Aktionen ausführen, ohne den Kontext einer App zu verlassen. Bei Apps mit benutzerdefinierten Kacheln können Nutzer Ihre Kacheln jetzt noch einfacher finden und den Schnelleinstellungen hinzufügen. Mit der neuen API für das Platzieren von Kacheln kann Ihre App Nutzer jetzt auffordern, Ihre benutzerdefinierte Kachel direkt den aktiven Kacheln in den Schnelleinstellungen hinzuzufügen. Über ein neues Systemdialogfeld kann der Nutzer die Kachel in einem Schritt hinzufügen, ohne Ihre App verlassen zu müssen. Er muss also nicht mehr die Schnelleinstellungen aufrufen, um die Kachel hinzuzufügen.
Zwischenablagevorschau
Ab Android 13 zeigt das System eine standardmäßige visuelle Bestätigung an, wenn Inhalte der Zwischenablage hinzugefügt werden. Die neue Bestätigung hat folgende Auswirkungen:
- Bestätigt, dass die Inhalte erfolgreich kopiert wurden.
- Eine Vorschau der kopierten Inhalte.
Mit dieser Funktion werden die verschiedenen Benachrichtigungen standardisiert, die von Apps nach dem Kopieren angezeigt werden, und Nutzer haben mehr Kontrolle über ihre Zwischenablage. Weitere Informationen finden Sie auf der Seite Kopieren und Einfügen.
Intelligente „Zurück“-Touch-Geste
Android 13 führt eine vorausschauende Geste für die rückwärts gerichtete Navigation auf Android-Geräten wie Smartphones, Geräten mit großen Bildschirmen und faltbaren Geräten ein. Wenn Sie diese Funktion unterstützen möchten, müssen Sie Ihre App aktualisieren.
Eine ausführliche Dokumentation finden Sie unter App so aktualisieren, dass eine vorweggenommene Geste zum Zurückgehen unterstützt wird. Du kannst auch unser Codelab ausprobieren.
Bluetooth LE Audio
Low Energy (LE) Audio ist eine kabellose Audiotechnologie, die Bluetooth Classic ersetzen und bestimmte Anwendungsfälle und Verbindungstopologien ermöglichen soll. Nutzer können Audioinhalte mit Freunden und Familie teilen und übertragen oder öffentliche Übertragungen für Informationen, Unterhaltung oder Barrierefreiheit abonnieren. Es soll dafür sorgen, dass Nutzer High-Fidelity-Audio ohne Einbußen bei der Akkulaufzeit empfangen und nahtlos zwischen verschiedenen Anwendungsfällen wechseln können, was mit Bluetooth Classic nicht möglich ist. Ab Android 13 ist LE Audio in das System integriert. Entwickler können diese Funktionen also kostenlos auf kompatiblen Geräten nutzen.
MIDI 2.0
Ab Android 13 unterstützt das System den MIDI 2.0-Standard, einschließlich der Möglichkeit, MIDI 2.0-Hardware über USB anzuschließen. Dieser Standard bietet Funktionen wie eine höhere Auflösung für Controller, eine bessere Unterstützung für nicht westliche Intonation und eine ausdrucksstärkere Leistung durch Controller pro Note.
Verbesserungen bei der Effizienz des Startbildschirms
Unter Android 13 wird die Effizienz animierter Startbildschirme in der SplashScreen API verbessert:
Die Dauer der Animation wird direkt aus der
AnimatedVectorDrawable
abgeleitet. Vor Android 13 musste diewindowSplashScreenAnimationDuration
direkt festgelegt werden.Mit dem neuen Attribut
windowSplashScreenBehavior
können Sie festlegen, ob das Symbol Ihrer App unter Android 13 und höher immer auf dem Startbildschirm angezeigt wird.
Eine ausführliche Dokumentation finden Sie unter Startbildschirme.
ART-Optimierungen
In Android 13 (API-Level 33) und höher beschleunigt ART den Wechsel zu und von nativem Code erheblich.JNI-Aufrufe sind jetzt bis zu 2,5-mal schneller. Die Verarbeitung von Laufzeitreferenzen wurde ebenfalls überarbeitet, damit sie größtenteils nicht blockierend ist. Dadurch wird die Ruckelung weiter reduziert. Außerdem können Sie die öffentliche API Reference.refersTo()
verwenden, um nicht erreichbare Objekte früher wiederzuverwenden. Außerdem ist der Interpreter jetzt dank optimierter Klassen- und Methodenabfragen schneller. Außerdem führt ART bei der Installation mehr Bytecode-Überprüfungen durch, wodurch die Kosten für die Überprüfung zur Laufzeit vermieden und die App-Startzeiten verkürzt werden.
Datenschutz und Sicherheit
Sichererer Export von im Kontext registrierten Empfängern
Um die Sicherheit von Laufzeitempfängern zu erhöhen, können Sie in Android 13 in Ihrer App angeben, ob ein registrierter Übertragungsempfänger exportiert und für andere Apps auf dem Gerät sichtbar sein soll. Bei früheren Android-Versionen konnte jede App auf dem Gerät eine ungeschützte Übertragung an einen dynamisch registrierten Empfänger senden, es sei denn, dieser Empfänger war durch eine Signaturberechtigung geschützt.
Diese Exportkonfiguration ist für Apps verfügbar, die mindestens eine der folgenden Funktionen bieten:
- Verwenden Sie die Klasse
ContextCompat
ab Version 1.9.0 der AndroidX Core-Bibliothek. - Richten Sie Ihre App auf Android 13 oder höher aus.
Bildauswahl
Android 13 (API-Level 33) und höher bietet eine Bildauswahl. Wenn Ihre App die Bildauswahl startet, wählen Nutzer bestimmte Bilder und Videos aus, die sie für Ihre App freigeben möchten, z. B. Profilbilder, anstatt Ihrer App Zugriff auf die gesamte Mediathek zu gewähren. Dies ist die empfohlene Methode, um auf die Fotos und Videos des Nutzers zuzugreifen.
Die Bildauswahl bietet Nutzern einen besseren Datenschutz, da für Ihre App keine Laufzeitberechtigungen deklariert werden müssen. Außerdem bietet die Bildauswahl eine integrierte, standardisierte Benutzeroberfläche für Apps, was für eine einheitlichere Nutzererfahrung sorgt.
Neue Laufzeitberechtigung für WLAN-Geräte in der Nähe
In Android 13 (API-Level 33) wird eine neue Laufzeitberechtigung in der Berechtigungsgruppe NEARBY_DEVICES
für Apps eingeführt, die die Verbindungen eines Geräts zu nahe gelegenen Zugangspunkten über WLAN verwalten. Diese Apps müssen die neue Berechtigung NEARBY_WIFI_DEVICES
angeben, wenn sie mehrere verschiedene WLAN-APIs aufrufen.
Außerdem müssen Apps, die den physischen Standort nicht aus den WLAN-APIs ableiten, die Berechtigung ACCESS_FINE_LOCATION
nicht deklarieren, wenn sie auf Android 13 oder höher ausgerichtet sind.
Weitere Informationen zur Berechtigung „Geräte in der Nähe“
Neue Berechtigung zur Verwendung exakter Wecker
Wenn Ihre App auf Android 13 oder höher ausgerichtet ist, können Sie die Berechtigung USE_EXACT_ALARM
verwenden, die Ihrer App automatisch gewährt wird. Damit Ihre App diese Berechtigung verwenden kann, muss sie jedoch mindestens eines der folgenden Kriterien erfüllen:
- Ihre App ist ein Wecker oder ein Timer.
- Ihre App ist eine Kalender-App, die Benachrichtigungen zu anstehenden Terminen anzeigt.
Wenn Ihre App exakte Wecker stellt, aber keiner der in der vorherigen Liste aufgeführten Fälle zutrifft, müssen Sie weiterhin die Berechtigung SCHEDULE_EXACT_ALARM
angeben und sich darauf vorbereiten, dass der Nutzer den Zugriff auf Ihre App verweigert.
Vom Entwickler aufgehobene App-Berechtigungen
Ab Android 13 kann Ihre App den Zugriff auf nicht verwendete Laufzeitberechtigungen widerrufen. Mit dieser API kann Ihre App datenschutzfreundliche Aufgaben ausführen, z. B.:
- Entfernen Sie nicht verwendete Berechtigungen.
- Beachten Sie die Best Practices für Berechtigungen, um das Vertrauen der Nutzer zu stärken. Sie können den Nutzern ein Dialogfeld mit den Berechtigungen anzeigen, die Sie proaktiv widerrufen haben.
APK-Signaturschema v3.1
Android 13 unterstützt das APK-Signaturschema 3.1, das das vorhandene APK-Signaturschema 3 verbessert. Mit diesem Schema werden einige der bekannten Probleme mit dem APK-Signaturschema v3 in Bezug auf die Rotation behoben. Insbesondere unterstützt das Signaturschema der Version 3.1 das Targeting auf SDK-Versionen, wodurch die Auslieferung auf eine spätere Version der Plattform ausgerichtet werden kann.
Das Signaturschema v3.1 verwendet eine Block-ID, die unter 12L nicht erkannt wird. Daher wendet die Plattform das folgende Verhalten für Unterzeichner an:
- Auf Geräten mit Android 13 oder höher wird der rotierende Unterzeichner im Block v3.1 verwendet.
- Auf Geräten mit älteren Android-Versionen wird der rotierende Signaturschlüssel ignoriert und stattdessen der ursprüngliche Signaturschlüssel im Block „v3.0“ verwendet.
Bei Apps, deren Signaturschlüssel noch nicht rotiert wurde, sind keine weiteren Maßnahmen erforderlich. Wenn diese Apps die Bildschirmausrichtung ändern, wendet das System standardmäßig das Signaturschema v3.1 an.
Bei Apps, bei denen der Signaturschlüssel bereits rotiert wurde und die den rotierten Signaturschlüssel weiterhin im Signaturblock von Version 3.0 verwenden möchten, muss die apksigner
-Aufrufanweisung aktualisiert werden:
apksigner sign --ks keystore.jks | --key key.pk8 --cert cert.x509.pem --rotation-min-sdk-version API_LEVEL [signer_options] app-name.apk
Dabei ist API_LEVEL
≤ 32.
Verbesserte Fehlerberichte in Keystore und KeyMint
Für Apps, die Schlüssel generieren, bieten Keystore und KeyMint jetzt detailliertere und genauere Fehlerindikatoren. Unter java.security.ProviderException
haben wir eine Hierarchie von Ausnahmeklassen hinzugefügt, die Android-spezifische Ausnahmen enthält, darunter Keystore-/KeyMint-Fehlercodes und Informationen dazu, ob der Fehler noch einmal versucht werden kann. Sie können auch die Methoden zur Schlüsselgenerierung und -verwendung (Signatur, Verschlüsselung) ändern, um die neuen Ausnahmen zu werfen. Die verbesserte Fehlermeldung ist nicht auf die Schlüsselgenerierung beschränkt und sollte Ihnen jetzt alles Notwendige zur Wiederholung der Schlüsselgenerierung liefern.
Unterstützung für Tablets und große Bildschirme
Android 13 baut auf den Tablet-Optimierungen auf, die in Android 12 und der 12L-Funktionsveröffentlichung eingeführt wurden. Dazu gehören Optimierungen für die System-UI, ein besseres Multitasking und verbesserte Kompatibilitätsmodi. Achten Sie bei Ihren Tests darauf, dass Ihre Apps auf Tablets und anderen Geräten mit großem Bildschirm optimal aussehen.
Weitere Informationen zu den Neuigkeiten und zu den zu testenden Elementen finden Sie auf der Seite Unterstützung für Tablets und große Bildschirme.
Grafik
Programmierbare Shader
Ab Android 13 unterstützt das System programmierbare RuntimeShader
-Objekte, deren Verhalten mit der Android Graphics Shading Language (AGSL) definiert wird. AGSL teilt einen Großteil seiner Syntax mit GLSL, funktioniert aber innerhalb der Android-Rendering-Engine, um das Malen im Canvas von Android sowie das Filtern von Ansichtsinhalten anzupassen.
Android verwendet diese Shader intern, um Welleneffekte, Weichzeichner und Überscroll-Dehnung zu implementieren.
Mit Android 13 und höher können Sie ähnliche erweiterte Effekte für Ihre App erstellen.
Verbesserungen bei der Choreografie
In Android 13 werden öffentliche API-Methoden für Choreographer
und ASurfaceControl
eingeführt, die Apps mehr Informationen zu den möglichen Zeitachsen für Frames und mehr Kontext zum SurfaceFlinger
-Lebenszyklus bieten. Ähnlich wie zuvor können Apps einen Callback an Choreographer
senden und Informationen zur Frame-Zeitachse erhalten. In Android 13 (API-Level 33) gibt Choreographer
mehrere mögliche Präsentationszeiten und die entsprechenden Frame-Frist zurück. Apps können den Zeitpunkt der Präsentation auswählen und SurfaceFlinger
über die Auswahl benachrichtigen. SurfaceFlinger
versucht dann nicht, vor der gewünschten Präsentationszeit Transaktionen oder Latch-Buffer anzuwenden.
Kamera
HDR-Videoaufnahme
Ab Android 13 unterstützen die Camera2 APIs die Videoaufnahme mit High Dynamic Range (HDR). So können Sie sich eine Vorschau von HDR-Videoinhalten ansehen und diese mit Ihrer Kamera aufnehmen. Im Vergleich zu Standard Dynamic Range (SDR) bietet HDR einen größeren Farbumfang und erhöht den Dynamikbereich der Leuchtdichtekomponente (von derzeit 100 cd/m2 auf 1.000 cd/m2). Das Ergebnis ist eine Videoqualität, die der Realität besser entspricht, mit satteren Farben, helleren Highlights und dunkleren Schatten.
Weitere Informationen zur HDR-Videoaufnahme finden Sie in der Dokumentation zur HDR-Videoaufnahme.
Medien
Spatial Audio
Spatial Audio ist ein eindrucksvolles Audioerlebnis, das Medieninhalte für Ihre Nutzer realistischer klingen lässt. Weitere Informationen zur Einbindung dieser Funktion findest du in der Dokumentation zu Spatial Audio.
Antizipatorisches Audiorouting
Damit Medien-Apps besser nachvollziehen können, wie ihr Audiosignal weitergeleitet wird, werden in Android 13 Audio-Routing-APIs in der Klasse AudioManager
eingeführt. Mit der getAudioDevicesForAttributes()
API kannst du eine Liste der Geräte abrufen, die zur Wiedergabe der angegebenen Audioinhalte verwendet werden können. Mit der getDirectProfilesForAttributes()
API kannst du feststellen, ob dein Audiostream direkt wiedergegeben werden kann. Mit diesen APIs kannst du die beste AudioFormat
für deinen Audiotrack ermitteln.
Bedienungshilfen
Audiodeskription
Android 13 (API-Level 33) führt eine neue systemweite Einstellung für Bedienungshilfen ein, mit der Nutzer Audiobeschreibungen für alle Apps aktivieren können. Eine Audiobeschreibung ist ein zusätzlicher Erzählertrack, bei dem ein Erzähler die Präsentation kommentiert und während natürlicher Pausen im Audiotrack beschreibt, was auf dem Bildschirm passiert.
Apps können die Einstellungen des Nutzers für Audiobeschreibungen berücksichtigen, indem sie eine Abfrage mit isAudioDescriptionRequested()
stellen, wie im folgenden Code-Snippet gezeigt:
Kotlin
private lateinit var accessibilityManager: AccessibilityManager // In onCreate(): accessibilityManager = getSystemService(AccessibilityManager::class.java) // Where your media player is initialized if (accessibilityManager.isAudioDescriptionRequested) { // User has requested to enable audio descriptions }
Java
private AccessibilityManager accessibilityManager; // In onCreate(): accessibilityManager = getSystemService(AccessibilityManager.class); // Where your media player is initialized if(accessibilityManager.isAudioDescriptionRequested()) { // User has requested to enable audio descriptions }
Apps können die Einstellungsänderungen von Nutzern überwachen, indem sie einen Listener zu AccessbilityManager
hinzufügen:
Kotlin
private val listener = AccessibilityManager.AudioDescriptionRequestedChangeListener { enabled -> // Preference changed; reflect its state in your media player } override fun onStart() { super.onStart() accessibilityManager.addAudioDescriptionRequestedChangeListener(mainExecutor, listener) } override fun onStop() { super.onStop() accessibilityManager.removeAudioDescriptionRequestedChangeListener(listener) }
Java
private AccessibilityManager.AudioDescriptionRequestedChangeListener listener = enabled -> { // Preference changed; reflect its state in your media player }; @Override protected void onStart() { super.onStart(); accessibilityManager.addAudioDescriptionRequestedChangeListener(getMainExecutor(), listener); } @Override protected void onStop() { super.onStop(); accessibilityManager.removeAudioDescriptionRequestedChangeListener(listener); }
Hauptfunktion
OpenJDK 11-Updates
Mit Android 13 werden die Kernbibliotheken von Android aktualisiert, um sie an die OpenJDK 11 LTS-Version anzupassen. Dabei werden sowohl Bibliotheksupdates als auch die Java 11-Sprachunterstützung für Anwendungs- und Plattformentwickler bereitgestellt. Die in Android 13 eingeführten Änderungen an der Kernbibliothek sind auch für Android 12-Geräte über ein Google Play-Systemupdate für das ART Mainline-Modul verfügbar.
In Android 13 wurden die folgenden Änderungen an den Kernbibliotheken vorgenommen:
- Unterstützung für das Schlüsselwort
var
für lokale Variablen und als Parameter für Lambdas. Neue Methoden in der String-Klasse:
isBlank()
lines()
repeat()
strip()
stripLeading()
stripTrailing()
Unterstützung für
Collection.toArray(IntFunction)
, um die Anpassung einer Sammlung an ein Array zu vereinfachen.Unterstützung für
ifPresentOrElse()
,isEmpty()
,orElseThrow()
undstream()
in denjava.util
-KlassenOptional
,OptionalDouble
,OptionalInt
undOptionalLong
.Erweiterte Unterstützung für
SocketOptions
, einschließlich Wiederverwendung von Sockets.NullReader
,NullWriter
,InputStream
,OutputStream
undtransferTo()
Reader
-Funktionen, die gelesene Zeichen an eineWriter
übergeben.Es wurden Funktionen für die URL-Codierung und -Dekodierung mit
Charsets
hinzugefügt.Charset
-Funktionen fürFileReader
,FileWriter
,PrintStream
undPrintWriter
Neue
transferTo()
-,readNBytes()
-,readAllBytes()
- undwriteBytes()
-Funktionen fürByteArrayInput
oderOutputStream
undInput
oderOutputStream
Laufzeit- und Compilerunterstützung für
java.lang.invoke.VarHandle
Aktualisiert
java.util.concurrent
intern mitVarHandle
auf die OpenJDK 11 API.
Java und OpenJDK sind Marken oder eingetragene Marken von Oracle und/oder seinen Tochtergesellschaften.