Funktionen und APIs – Übersicht

Android 13 bietet Entwicklern tolle neue Funktionen und APIs. In den folgenden Abschnitten erfahren Sie mehr über die Funktionen für Ihre Apps und die ersten Schritte mit den 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 deine Apps auswirken können, findest du in den Verhaltensänderungen von Android 13 für Apps, die auf Android 13 ausgerichtet sind, und für alle Apps.

Produktivität von Entwicklern und Tools

Designs für App-Symbole

Nutzer, die Designs für App-Symbole aktivieren
Themenbezogene App-Symbole unter Android 13 aktivieren

Ab Android 13 können Sie App-Symbole mit Design aktivieren. Mit dieser Funktion werden App-Symbole in unterstützten Android-Launchern so eingefärbt, dass sie die Farben des vom Nutzer ausgewählten Hintergrundbilds und anderer Designs übernehmen.

Damit diese Funktion unterstützt wird, muss deine App sowohl ein adaptives Symbol als auch ein monochromatisches App-Symbol bereitstellen und im Manifest über das Element <adaptive-icon> auf das monochromatische App-Symbol verweisen. Wenn ein Nutzer Symboldesigns aktiviert hat (also in den Systemeinstellungen den Schalter Symboldesigns aktiviert hat) und der Launcher diese Funktion unterstützt, verwendet das System die Farben des vom Nutzer ausgewählten Hintergrundbilds und Designs, um die Farbgebung zu bestimmen, die dann auf das einfarbige App-Symbol angewendet wird.

In den folgenden Szenarien wird auf dem Startbildschirm NICHT das App-Symbol im Design angezeigt, sondern das adaptive oder Standard-App-Symbol:

  • Wenn der Nutzer keine App-Symboldesigns aktiviert hat
  • Wenn deine App kein monochromatisches App-Symbol bereitstellt
  • Wenn der Launcher keine App-Symboldesigns unterstützt

Weitere Informationen und eine Anleitung finden Sie unter Adaptive Symbole.

App-spezifische Spracheinstellungen

Appspezifische Sprachen in den Systemeinstellungen

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 diesen Nutzern eine bessere Erfahrung bieten können, werden in Android 13 die folgenden Funktionen für Apps eingeführt, die mehrere Sprachen unterstützen:

  • Systemeinstellungen: Ein zentraler Ort, an dem Nutzer für jede App eine bevorzugte Sprache auswählen können.

    In Ihrer App muss das Attribut android:localeConfig im Manifest Ihrer App deklariert werden, um dem System mitzuteilen, dass mehrere Sprachen unterstützt werden. 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() und getApplicationLocales() in LocaleManager, 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 Sprachauswahlfunktionen in der App zu erstellen, bieten ihren Nutzern daher eine einheitliche Nutzererfahrung, unabhängig davon, wo sie ihre Spracheinstellungen auswählen. Die öffentlichen APIs helfen Ihnen auch, die Menge an Boilerplate-Code zu reduzieren. Sie unterstützen 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 APIs zu verwenden, die in Appcompat 1.6.0-beta01 oder höher hinzugefügt wurden.

Apps, die nicht mehrere Sprachen unterstützen, sind von diesen Änderungen nicht betroffen.

Verbesserte Text- und Sprachunterstützung

Android 13 enthält mehrere Verbesserungen bei Text und Sprache, mit denen Sie die Nutzerfreundlichkeit optimieren können. Diese werden in den folgenden Abschnitten beschrieben:

Schnellere Silbentrennung

Durch die Silbentrennung wird umbrochener Text leichter lesbar und die Benutzeroberfläche wird anpassungsfähiger. Ab Android 13 wird die Leistung der Silbentrennung um bis zu 200% optimiert. Sie können sie also in Ihren TextView aktivieren, ohne dass sich dies nennenswert auf die Renderingleistung auswirkt. Wenn Sie eine schnellere Bindestrichsetzung aktivieren möchten, verwenden Sie die Frequenzen fullFast oder normalFast in setHyphenationFrequency().

Text Conversion APIs

Nutzer, die Sprachen wie Japanisch und Chinesisch sprechen, verwenden phonetische Eingabemethoden, die die Suche und Funktionen wie die automatische Vervollständigung oft verlangsamen. In Android 13 können Apps die neue Text Conversion API aufrufen, damit Nutzer schneller und einfacher finden, wonach sie suchen. Bisher musste ein japanischer Nutzer beispielsweise die folgenden Schritte ausführen, um eine Suche durchzuführen:

  1. Hiragana als phonetische Aussprache des Suchbegriffs eingeben (z. B. ein Ort oder ein App-Name)
  2. Verwenden Sie die Tastatur, um die Hiragana-Zeichen in Kanji umzuwandeln.
  3. Suchen Sie noch einmal mit den Kanji-Zeichen.
  4. Suchergebnisse erhalten

Mit der neuen API für die Textkonvertierung können japanische Nutzer in Hiragana tippen und sofort Kanji-Suchergebnisse sehen. Die Schritte 2 und 3 werden übersprungen.

Verbesserte Zeilenhöhen für nicht lateinische Schriften

Android 13 verbessert die Darstellung nicht lateinischer Schriften (z. B. Tamil, Birmanisch, Telugu und Tibetisch) durch eine für jede Sprache angepasste Zeilenhöhe. Die neuen Zeilenhöhen verhindern das Abschneiden von Zeichen und verbessern deren Positionierung. Ihre App kann von diesen Verbesserungen profitieren, wenn sie auf Android 13 ausgerichtet ist. Teste deine Apps, wenn du den neuen Zeilenabstand verwendest, da sich die Änderungen auf die Benutzeroberfläche in nicht-lateinischen Sprachen auswirken können.

Zeilenhöhen, die in Android 12 (oben) abgeschnitten wurden, werden in Android 13 (unten) besser positioniert und nicht abgeschnitten.

Verbesserter Textumbruch für Japanisch

Ab Android 13 können TextViews Text nach Bunsetsu (der kleinsten Wortgruppe, die natürlich klingt) oder nach Wortgruppen statt nach Zeichen umbrechen, um japanische Anwendungen besser lesbar zu machen. Sie können diesen Zeilenumbruch nutzen, indem Sie android:lineBreakWordStyle="phrase" mit TextViews verwenden.

Japanischer Textumbruch mit aktiviertem Wortgruppenstil (unten) und ohne (oben).

Aktualisierungen der Unicode-Bibliothek

Android 13 enthält die neuesten Verbesserungen, Fehlerbehebungen und Änderungen, die in Unicode ICU 70, Unicode CLDR 40 und Unicode 14.0 enthalten sind.

Hier sind einige wichtige Änderungen:

  • Für Englisch (Kanada) en‑CA und Englisch (Republik der Philippinen) en‑PH werden beide Übersetzungsressourcen für Englisch (USA) en verwendet, wenn keine Übersetzungsressourcen verfügbar sind, anstatt Englisch (Vereinigtes Königreich) en‑GB.
  • Die Pluralkategorie many wurde für Spanisch es, Italienisch it, Portugiesisch pt und Portugiesisch (Portugal) pt‑PT eingeführt. Ähnlich wie beim Französischen, das in CLDR v38 eingeführt wurde, wird dies für große Zahlen verwendet.

Farbvektorschriftarten

COLRv1-Vektor-Emoji (links) und Bitmap-Emoji (rechts)

Ab Android 13 unterstützt das System das Rendern von COLR-Schriftarten der Version 1 (COLRv1) und aktualisiert System-Emojis auf das COLRv1-Format. COLRv1 ist ein sehr kompaktes Schriftformat, das schnell und scharf in jeder Größe gerendert wird.

Bei den meisten Apps übernimmt das System alles und COLRv1 funktioniert einfach. Wenn deine App jedoch ein eigenes Text-Rendering implementiert und die Schriftarten des Systems verwendet, empfehlen wir, das Emoji-Rendering zu testen.

Weitere Informationen zu COLRv1 finden Sie in den folgenden Ressourcen:

API für die Platzierung von Schnelleinstellungen

Über die Schnelleinstellungen in der Benachrichtigungsleiste können Nutzer Einstellungen ändern oder Schnellaktionen ausführen, ohne die App zu verlassen. Für Apps, die benutzerdefinierte Kacheln bereitstellen, machen wir es Nutzern leichter, diese Kacheln zu finden und den Schnelleinstellungen hinzuzufügen. Mit einer neuen API für die Kachelplatzierung kann deine App den Nutzer jetzt auffordern, deine benutzerdefinierte Kachel direkt zu den aktiven Schnelleinstellungen-Kacheln hinzuzufügen. Über ein neues Systemdialogfeld kann der Nutzer die Kachel in einem Schritt hinzufügen, ohne die App verlassen zu müssen. Er muss also nicht die Schnelleinstellungen aufrufen, um die Kachel hinzuzufügen.

Ein Dialogfeld, in dem der Nutzer gefragt wird, ob er den Schnelleinstellungen eine Kachel hinzufügen möchte.

Vorschau der Zwischenablage

Ab Android 13 zeigt das System eine visuelle Standardbestätigung an, wenn Inhalte in die Zwischenablage eingefügt werden. Die neue Bestätigung hat folgende Auswirkungen:

  • Bestätigt, dass der Inhalt erfolgreich kopiert wurde.
  • Zeigt eine Vorschau des kopierten Inhalts an.

Mit dieser Funktion werden die verschiedenen Benachrichtigungen, die von Apps nach dem Kopieren angezeigt werden, standardisiert. Außerdem haben Nutzer mehr Kontrolle über ihre Zwischenablage. Weitere Informationen finden Sie auf der Seite zur Funktion Kopieren und einfügen.

Widget kopieren/einfügen
Neue Benutzeroberfläche, die angezeigt wird, wenn Inhalte in die Zwischenablage kopiert werden.

Intelligente „Zurück“-Touchgeste

Mit Android 13 wird eine intelligente „Zurück“-Touchgeste für Android-Geräte wie Smartphones, Geräte mit großen Displays und faltbare Smartphones eingeführt. Wenn du diese Funktion unterstützen möchtest, musst du deine App aktualisieren.

Eine ausführliche Dokumentation finden Sie unter App aktualisieren, um die intelligente „Zurück“-Touchgeste zu unterstützen. Sie können 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 damit ihre Audioinhalte mit Freunden und Familie teilen und übertragen oder öffentliche Übertragungen abonnieren, um Informationen, Unterhaltung oder Barrierefreiheit zu erhalten. Es wurde entwickelt, um Nutzern eine hohe Audioqualität zu bieten, ohne die Akkulaufzeit zu beeinträchtigen, und um nahtlos zwischen verschiedenen Anwendungsfällen zu wechseln, die mit Bluetooth Classic nicht möglich sind. Ab Android 13 bietet das System integrierte Unterstützung für LE Audio, sodass Entwickler diese Funktionen auf kompatiblen Geräten kostenlos nutzen können.

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.

Effizienzverbesserungen beim Splash Screen

Android 13 verbessert die Effizienz animierter Splash Screens in der Splash Screen API:

  • Das System leitet die Animationsdauer direkt aus dem AnimatedVectorDrawable ab. Vor Android 13 war es erforderlich, windowSplashScreenAnimationDuration direkt festzulegen.

  • Mit dem neuen Attribut windowSplashScreenBehavior kannst du besser steuern, ob deine App unter Android 13 und höher immer das Symbol auf dem Splash Screen anzeigt.

Eine ausführliche Dokumentation finden Sie unter Splash Screens.

ART-Optimierungen

Unter Android 13 (API-Level 33) und höher ermöglicht ART einen viel schnelleren Wechsel zu und von nativem Code.JNI-Aufrufe sind jetzt bis zu 2,5-mal schneller. Die Verarbeitung von Laufzeitreferenzen wurde ebenfalls überarbeitet, sodass sie größtenteils nicht blockierend ist, was Ruckeln weiter reduziert. Außerdem können Sie die öffentliche API Reference.refersTo() verwenden, um nicht erreichbare Objekte schneller zurückzufordern. Der Interpreter ist jetzt dank optimierter Klassen- und Methodensuchen schneller. ART führt außerdem mehr Bytecode-Überprüfungen bei der Installation durch. Dadurch wird die Überprüfung zur Laufzeit vermieden und die Startzeiten von Apps bleiben kurz.

Datenschutz und Sicherheit

Sichereres Exportieren von kontextregistrierten Empfängern

Damit Laufzeit-Empfänger sicherer sind, bietet Android 13 die Möglichkeit, in Ihrer App anzugeben, ob ein registrierter Übertragungsempfänger exportiert und für andere Apps auf dem Gerät sichtbar sein soll. In früheren Android-Versionen konnte jede App auf dem Gerät eine ungeschützte Übertragung an einen dynamisch registrierten Empfänger senden, sofern dieser Empfänger nicht durch eine Signaturberechtigung geschützt war.

Diese Exportkonfiguration ist für Apps verfügbar, die mindestens eine der folgenden Bedingungen erfüllen:

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 mit Ihrer App teilen 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 verbesserten Datenschutz, da in deiner 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 nahegelegenen Zugriffspunkten über WLAN verwalten. Diese Apps müssen die neue Berechtigung NEARBY_WIFI_DEVICES deklarieren, wenn sie verschiedene WLAN-APIs aufrufen. Außerdem müssen Apps, die den physischen Standort nicht über die WLAN-APIs ableiten, die Berechtigung ACCESS_FINE_LOCATION nicht deklarieren, wenn sie auf Android 13 oder höher ausgerichtet sind.

Weitere Informationen zur Berechtigung „WLAN-Geräte in der Nähe“

Neue Berechtigung für die Verwendung exakter Alarme

Wenn deine App auf Android 13 oder höher ausgerichtet ist, kannst du die Berechtigung USE_EXACT_ALARM verwenden, die deiner App automatisch gewährt wird. Damit deine 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 ein Kalender, der Benachrichtigungen für anstehende Termine anzeigt.

Wenn deine App exakte Alarme einrichtet, aber keiner der beiden Fälle in der vorherigen Liste zutrifft, deklariere stattdessen weiterhin die Berechtigung SCHEDULE_EXACT_ALARM und bereite dich auf die Situation vor, dass der Nutzer deiner App den Zugriff 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 wie die folgenden ausführen:

  • Entfernen Sie nicht verwendete Berechtigungen.
  • Halten Sie sich an die Best Practices für Berechtigungen, um das Vertrauen der Nutzer zu stärken. Du kannst den Nutzern ein Dialogfeld mit den Berechtigungen anzeigen, die du proaktiv widerrufen hast.

APK-Signaturschema v3.1

Android 13 bietet Unterstützung für das APK-Signaturschema v3.1, das das bestehende APK-Signaturschema v3 verbessert. Dieses Schema behebt einige der bekannten Probleme mit dem APK-Signaturschema v3 in Bezug auf die Rotation. Insbesondere unterstützt das v3.1-Signaturschema das Targeting auf SDK-Versionen, sodass die Rotation auf eine spätere Version der Plattform ausgerichtet werden kann.

Das Signaturschema v3.1 verwendet eine Block-ID, die unter 12L oder niedriger nicht erkannt wird. Daher gilt auf der Plattform das folgende Signaturverhalten:

  • Auf Geräten mit Android 13 oder höher wird der rotierte Signer im v3.1-Block verwendet.
  • Auf Geräten mit älteren Android-Versionen wird der rotierte Signaturgeber ignoriert und stattdessen der ursprüngliche Signaturgeber im v3.0-Block verwendet.

Für Apps, deren Signaturschlüssel noch nicht rotiert wurde, sind keine weiteren Maßnahmen erforderlich. Wenn diese Apps rotiert werden, wendet das System standardmäßig das v3.1-Signaturschema an.

Apps, die bereits rotiert wurden und ihren rotierten Signaturschlüssel weiterhin im v3.0-Signaturblock verwenden möchten, müssen ihren apksigner-Aufruf aktualisieren:

apksigner sign --ks keystore.jks |
  --key key.pk8 --cert cert.x509.pem
  --rotation-min-sdk-version API_LEVEL
  [signer_options] app-name.apk

...wobei API_LEVEL 32 oder niedriger ist.

Bessere Fehlerberichte in Keystore und KeyMint

Für Apps, die Schlüssel generieren, bieten Keystore und KeyMint jetzt detailliertere und genauere Fehlerindikatoren. Wir haben unter java.security.ProviderException eine Ausnahmeklassenhierarchie mit Android-spezifischen Ausnahmen hinzugefügt, die Keystore-/KeyMint-Fehlercodes enthalten und angeben, ob der Fehler wiederholbar ist. Sie können auch die Methoden für die Schlüsselgenerierung und -verwendung (Signierung, Verschlüsselung) so ändern, dass die neuen Ausnahmen ausgelöst werden. Die verbesserte Fehlerberichterstellung ist nicht auf die Schlüsselgenerierung beschränkt und sollte Ihnen jetzt die Informationen liefern, die Sie für einen erneuten Versuch der Schlüsselgenerierung benötigen.

Unterstützung für Tablets und große Bildschirme

Android 13 baut auf den Tablet-Optimierungen auf, die in Android 12 und im Feature Drop für 12L eingeführt wurden. Dazu gehören Optimierungen für die System-UI, besseres Multitasking und verbesserte Kompatibilitätsmodi. Achte beim Testen darauf, dass deine Apps auf Tablets und anderen Geräten mit großem Bildschirm optimal dargestellt werden.

Weitere Informationen zu den Neuerungen und zu den Testmöglichkeiten findest du auf der Seite Unterstützung für Tablets und große Bildschirme.

Grafik

Programmierbare Shader

Ein animierter AGSL-Shader, der von diesem GLSL-Shader angepasst wurde.

Ab Android 13 unterstützt das System programmierbare RuntimeShader-Objekte, deren Verhalten mit der Android Graphics Shading Language (AGSL) definiert wird. Die Syntax von AGSL ist weitgehend mit der von GLSL identisch. AGSL wird jedoch in der Android-Rendering-Engine verwendet, um das Zeichnen auf dem Canvas von Android sowie das Filtern von View-Inhalten anzupassen. Android verwendet diese Shader intern, um Ripple-Effekte, Unschärfe und Stretch-Overscroll zu implementieren. Mit Android 13 und höher können Sie ähnliche erweiterte Effekte für Ihre App erstellen.

Verbesserungen am Choreografen

In Android 13 werden öffentliche API-Methoden für Choreographer und ASurfaceControl eingeführt, die Apps mehr Informationen zu den möglichen Frame-Zeitachsen bieten und SurfaceFlinger mehr Kontext zum Frame-Lebenszyklus hinzufügen. 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-Fristen zurück. Apps können die Präsentationszeit auswählen und anschließend SurfaceFlinger über die Auswahl benachrichtigen. SurfaceFlinger versucht dann nicht, Transaktionen oder Latch-Puffer vor der gewünschten Präsentationszeit anzuwenden.

Wenn deine App die neuen Choreographer- und SurfaceControl-Methoden verwendet, kannst du den Frame-Lebenszyklus der App in einem Perfetto-Trace ansehen.

Kamera

HDR-Videoaufnahme

Ab Android 13 unterstützen die Camera2 APIs die Aufnahme von HDR-Videos (High Dynamic Range). So können Sie HDR-Videoinhalte mit Ihrer Kamera in der Vorschau ansehen und aufnehmen. Im Vergleich zu SDR (Standard Dynamic Range) bietet HDR eine größere Farbpalette und erhöht den Dynamikumfang der Luminanzkomponente (von derzeit 100 cd/m² auf Tausende von cd/m²). So wird die Videoqualität realistischer, 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 deine Nutzer realistischer klingen lässt. Weitere Informationen zur Einbindung dieser Funktion findest du in unserer Dokumentation zu Spatial Audio.

Antizipatorisches Audiorouting

Damit Medien-Apps erkennen können, wie ihre Audioinhalte weitergeleitet werden, 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 für die 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 können Sie die beste AudioFormat für Ihren Audiotrack ermitteln.

Bedienungshilfen

Audiodeskription

Mit Android 13 (API-Level 33) wird eine neue systemweite Einstellung für Bedienungshilfen eingeführt, mit der Nutzer Audiodeskriptionen in allen Apps aktivieren können. Eine Audiodeskription ist ein zusätzlicher Audiotrack, bei dem ein Sprecher die Präsentation kommentiert und in natürlichen Pausen im Video beschreibt, was auf dem Bildschirm passiert. Apps können die Einstellung des Nutzers für Audiodeskriptionstracks berücksichtigen, indem sie sie mit isAudioDescriptionRequested() abfragen, 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 Änderungen der Nutzereinstellungen ü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. Dazu gehören sowohl Bibliotheksupdates als auch die Unterstützung der Programmiersprache Java 11 für Anwendungs- und Plattformentwickler. Die in Android 13 eingeführten Änderungen an der Core-Bibliothek sind auch für Android 12-Geräte über ein Google Play-Systemupdate für das ART-Mainline-Modul verfügbar.

Android 13 enthält die folgenden Änderungen an den Kernbibliotheken:

  • Unterstützung für das Schlüsselwort var für lokale Variablen und als Parameter-Lambdas.
  • Neue Methoden in der String-Klasse:

    • isBlank()
    • lines()
    • repeat()
    • strip()
    • stripLeading()
    • stripTrailing()
  • Unterstützung für Collection.toArray(IntFunction), um eine Sammlung einfacher an ein Array anzupassen.

  • Unterstützung für ifPresentOrElse(), isEmpty(), orElseThrow() und stream() in den java.util-Klassen Optional, OptionalDouble, OptionalInt und OptionalLong.

  • Erweiterte Unterstützung für SocketOptions, einschließlich der Wiederverwendung von Sockets.

  • NullReader, NullWriter, InputStream, OutputStream und transferTo() Reader-Funktionen, die gelesene Zeichen in ein Writer übertragen.

  • Funktion für die URL-Codierung und -Decodierung mit Charsets hinzugefügt.

  • Charset-Funktionen für FileReader, FileWriter, PrintStream und PrintWriter.

  • Neue Funktionen transferTo(), readNBytes(), readAllBytes() und writeBytes() für ByteArrayInput oder OutputStream und Input oder OutputStream.

  • Laufzeit- und Compiler-Unterstützung für java.lang.invoke.VarHandle.

  • Aktualisiert java.util.concurrent auf die OpenJDK 11 API, wobei intern VarHandle verwendet wird.

Java und OpenJDK sind Marken oder eingetragene Marken von Oracle und/oder seinen Tochtergesellschaften.