Funktionen und APIs – Übersicht

Mit Android 13 werden tolle neue Funktionen und APIs für Entwickler eingeführt. In den folgenden Abschnitten erhalten Sie Informationen zu Funktionen für Ihre Apps und zu den ersten Schritten mit den zugehörigen APIs.

Eine detaillierte Liste der neuen, geänderten und entfernten APIs finden Sie im Bericht zu den API-Unterschieden. Ausführliche Informationen zu den neuen APIs finden Sie in der Android API-Referenz. Neue APIs sind hervorgehoben dargestellt. Informationen dazu, in welchen Bereichen sich Plattformänderungen auf deine Apps auswirken können, findest du in den Änderungen zum Verhalten von Android 13 für Apps, die auf Android 13 ausgerichtet sind und für alle Apps.

Produktivität und Tools für Entwickler

Designs für App-Symbole

Nutzer aktiviert App-Symboldesigns
App-Symboldesigns unter Android 13 aktivieren

Ab Android 13 können Sie App-Symboldesigns aktivieren. Bei dieser Funktion werden App-Symbole in unterstützten Android-Launchern so gefärbt, dass sie die Farbe des vom Nutzer ausgewählten Hintergrunds und anderer Designs übernehmen.

Damit diese Funktion unterstützt wird, muss deine App sowohl ein adaptives Symbol als auch ein einfarbiges App-Symbol haben und auf das einfarbige App-Symbol aus dem Element <adaptive-icon> im Manifest verweisen. Wenn ein Nutzer App-Symboldesigns (also die Ein/Aus-Schaltfläche für Symboldesigns in den Systemeinstellungen) und der Launcher diese Funktion unterstützt, bestimmt das System anhand der Farbe des vom Nutzer ausgewählten Hintergrunds und Designs die Färbung, die dann auf das einfarbige App-Symbol angewendet wird.

Auf dem Startbildschirm wird in den folgenden Fällen NICHT das App-Designsymbol, sondern das adaptive App-Symbol bzw. das Standard-App-Symbol angezeigt:

  • Wenn der Nutzer keine App-Symboldesigns aktiviert hat
  • Wenn Ihre App kein einfarbiges App-Symbol hat
  • Wenn der Launcher keine App-Symboldesigns unterstützt

Weitere Informationen und Anleitungen finden Sie unter Adaptive Symbole.

App-spezifische Spracheinstellungen

App-Sprachen in den Systemeinstellungen

In vielen Fällen legen mehrsprachige Nutzer für ihre Systemsprache eine Sprache fest, z. B. Englisch, möchten aber für bestimmte Apps auch andere Sprachen auswählen, z. B. Niederländisch, Chinesisch oder Hindi. Damit Apps diesen Nutzern ein besseres Erlebnis bieten können, wurden mit Android 13 die folgenden Funktionen für Apps eingeführt, die mehrere Sprachen unterstützen:

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

    Deine App muss das Attribut android:localeConfig im Manifest deiner App deklarieren, um dem System mitzuteilen, dass mehrere Sprachen unterstützt werden. Weitere Informationen finden Sie in der Anleitung zum Erstellen einer Ressourcendatei und zur Deklaration in der Manifestdatei Ihrer App.

  • Zusätzliche APIs: Mit diesen öffentlichen APIs wie den Methoden setApplicationLocales() und getApplicationLocales() in LocaleManager können Anwendungen zur Laufzeit eine andere Sprache als die Systemsprache festlegen.

    Diese APIs werden automatisch mit den Systemeinstellungen synchronisiert. Apps, die diese APIs zum Erstellen einer benutzerdefinierten In-App-Sprachauswahl verwenden, sorgen daher für eine einheitliche Nutzererfahrung, unabhängig davon, wo sie ihre Spracheinstellungen auswählen. Mit den öffentlichen APIs lässt sich auch die Menge an Boilerplate-Code reduzieren. Außerdem unterstützen sie unterteilte APKs und die automatische Sicherung für Apps zum Speichern von Spracheinstellungen auf App-Ebene.

    Aus Gründen der Abwärtskompatibilität mit früheren Android-Versionen sind auch entsprechende APIs 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 nicht mehrere Sprachen unterstützen, sind von diesen Änderungen nicht betroffen.

Verbesserte Unterstützung von Text und Sprachen

Android 13 enthält verschiedene Text- und Sprachverbesserungen, mit denen du eine noch ausgefeiltere Version bieten kannst. Diese werden in den folgenden Abschnitten beschrieben:

Schnellere Bindestrichsetzung

Die Bindestrichfunktion macht umgebrochenen Text leichter zu lesen und trägt dazu bei, Ihre UI flexibler zu gestalten. Ab Android 13 wird die Leistung der Bindestricheung um bis zu 200% optimiert. Sie können sie also in Ihrem TextView aktivieren, ohne dass dies Auswirkungen auf die Rendering-Leistung hat. Verwenden Sie für eine schnellere Bindestrichsetzung die Frequenz fullFast oder normalFast in setHyphenationFrequency().

Textkonvertierungs-APIs

Nutzer, die Sprachen wie Japanisch und Chinesisch sprechen, verwenden Eingabemethoden mit phonetischer Schrift, wodurch Suchen und Funktionen wie die automatische Vervollständigung häufig verlangsamt werden. In Android 13 können Apps die neue Text Conversion API aufrufen, damit Nutzer das Gesuchte schneller und einfacher finden. Bisher musste zum Beispiel ein japanischer Nutzer bei der Suche folgende Schritte ausführen:

  1. Geben Sie Hiragana als phonetische Aussprache des Suchbegriffs ein (z. B. einen Ort oder einen App-Namen)
  2. Verwende die Tastatur, um die Hiragana-Zeichen in Kanji zu konvertieren
  3. Mit Kanji-Zeichen recherchieren
  4. Endlich die Suchergebnisse abrufen

Mit der neuen Text Conversion API können japanische Nutzer Hiragana eingeben und die Kanji-Suchergebnisse sofort live sehen und die Schritte 2 und 3 überspringen.

Verbesserte Zeilenhöhen für nicht lateinische Skripts

Android 13 verbessert die Anzeige nicht-lateinischer Schriften (z. B. Tamil, Burmesisch, Telugu und Tibetisch), indem eine an jede Sprache angepasste Zeilenhöhe verwendet wird. Die neuen Zeilenhöhen verhindern das Überschneiden und verbessern die Positionierung von Zeichen. Allein durch die Ausrichtung auf Android 13 kann deine App von diesen Verbesserungen profitieren. Teste deine Apps unbedingt, wenn du den neuen Zeilenabstand verwendest, da sich die Änderungen möglicherweise auf deine UI in nicht-lateinischen Sprachen auswirken.

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

Verbesserter japanischer Textumbruch

Ab Android 13 können TextViews Text nach Bunsetsu (der kleinsten Worteinheit, die natürlich klingen) oder Wortgruppen anstelle von Zeichen umbrechen, um ausgefeiltere und besser lesbare japanische Anwendungen zu erhalten. Sie können dieses Wrapping nutzen, wenn 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, Fehlerkorrekturen und Änderungen, die in Unicode ICU 70, Unicode CLDR 40 und Unicode 14.0 enthalten sind.

Hier die wichtigsten Änderungen:

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

Farbvektorschriftarten

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

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

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

Weitere Informationen zu COLRv1 finden Sie in den folgenden Ressourcen:

Placement-API für Schnelleinstellungen

Über die Schnelleinstellungen in der Benachrichtigungsleiste können Nutzer bequem Einstellungen ändern oder Schnellaktionen ausführen, ohne den Kontext einer App zu verlassen. Bei Apps mit benutzerdefinierten Kacheln ist es für Nutzer einfacher, Kacheln zu finden und den Schnelleinstellungen hinzuzufügen. Mit einer neuen API für das Kachel-Placement kann der Nutzer in deiner App aufgefordert werden, deine benutzerdefinierte Kachel direkt zu den aktiven Kacheln für Schnelleinstellungen hinzuzufügen. In einem neuen Systemdialogfeld kann der Nutzer die Kachel in einem Schritt hinzufügen, ohne die App zu verlassen. Sie müssen zum Hinzufügen der Kachel also nicht erst die Schnelleinstellungen aufrufen.

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

Vorschau der Zwischenablage

Ab Android 13 zeigt das System eine standardmäßige visuelle Bestä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.

Diese Funktion standardisiert die verschiedenen Benachrichtigungen, die Apps nach dem Kopieren anzeigen, und bietet Nutzern mehr Kontrolle über ihre Zwischenablage. Weitere Informationen finden Sie auf der Funktionsseite Kopieren und Einfügen.

Widget kopieren/einfügen
Neue UI wird angezeigt, wenn Inhalte in die Zwischenablage gelangen.

Vorhersagbare Touch-Geste „Zurück“

Mit Android 13 wird eine vorausschauende Touch-Geste für Android-Geräte wie Smartphones, große Displays und faltbare Geräte eingeführt. Damit dieses Feature unterstützt wird, müssen Sie Ihre Anwendung aktualisieren.

Eine ausführliche Dokumentation finden Sie unter Anwendung aktualisieren, um eine vorausschauende Reaktion zu unterstützen. Sie können auch unser Codelab ausprobieren.

Bluetooth LE Audio

Low Energy (LE) Audio ist kabelloses Audio, das klassisches Bluetooth ersetzt und bestimmte Anwendungsfälle und Verbindungstopologien ermöglicht. Nutzer können damit ihre Audioaufnahmen an Freunde und Familie senden und öffentliche Broadcasts abonnieren, um Informationen, Unterhaltung oder Zugänglichkeit zu erhalten. Sie wurde entwickelt, damit Nutzer High-Fidelity-Audio ohne Abstriche bei der Akkulaufzeit empfangen und nahtlos zwischen verschiedenen Anwendungsfällen wechseln können, die mit Bluetooth Classic nicht möglich sind. Ab Android 13 unterstützt das System LE Audio, sodass Entwickler diese Funktionen auf kompatiblen Geräten kostenlos zur Verfügung stellen 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, bessere Unterstützung für nicht westliche Intonation und ausdrucksstärkere Leistung mit Controllern pro Note.

Verbesserte Effizienz beim Ladebildschirm

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

  • Das System leitet die Dauer der Animation direkt aus AnimatedVectorDrawable ab. Vor Android 13 musste windowSplashScreenAnimationDuration direkt festgelegt werden.

  • Mit dem neuen Attribut windowSplashScreenBehavior kannst du besser steuern, ob in deiner App unter Android 13 und höher das Symbol immer auf dem Ladebildschirm angezeigt wird.

Eine ausführliche Dokumentation finden Sie unter Ladebildschirme.

ART-Optimierungen

Unter Android 13 (API-Level 33) und höher macht ART den Wechsel zu und von nativem Code viel schneller.JNI-Aufrufe sind jetzt bis zu 2,5-mal schneller. Auch die Laufzeitreferenzverarbeitung wurde überarbeitet, sodass sie größtenteils nicht blockiert wird. Dadurch werden Verzögerungen weiter reduziert. Darüber hinaus können Sie die öffentliche API Reference.refersTo() verwenden, um nicht erreichbare Objekte schneller zurückzugewinnen. Außerdem werden Sie feststellen, dass der Interpreter dank der optimierten Klassen- und Methodensuche jetzt schneller ist. ART führt außerdem bei der Installation mehr Byte-Code-Überprüfungen durch, wodurch die Kosten der Überprüfung während der Laufzeit vermieden werden und die Anwendungsstartzeiten schnell bleiben.

Datenschutz und Sicherheit

Sicherer Export kontextregistrierter Empfänger

In Android 13 kann Ihre App festlegen, ob ein registrierter Übertragungsempfänger exportiert werden und für andere Apps auf dem Gerät sichtbar sein soll, um Laufzeitempfänger sicherer zu machen. 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 wurde.

Diese Exportkonfiguration ist für Anwendungen verfügbar, die mindestens eine der folgenden Aktionen ausführen:

Zielgenaue Bildauswahl

Android 13 (API-Level 33) und höher enthält 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 besseren Datenschutz, da in Ihrer App keine Laufzeitberechtigungen deklariert werden müssen. Darüber hinaus bietet die Bildauswahl eine integrierte, standardisierte UI für Apps, die für eine einheitlichere Nutzererfahrung sorgt.

Neue Laufzeitberechtigung für WLAN-Geräte in der Nähe

Mit Android 13 (API-Level 33) wird in der Berechtigungsgruppe NEARBY_DEVICES eine neue Laufzeitberechtigung für Apps eingeführt, die die Verbindungen eines Geräts zu Zugangspunkten in der Nähe über WLAN verwalten. Diese Apps müssen die neue Berechtigung NEARBY_WIFI_DEVICES deklarieren, wenn sie mehrere verschiedene Wi-Fi APIs aufrufen. Solange Apps keinen physischen Standort über die Wi-Fi APIs ermitteln, muss die Berechtigung ACCESS_FINE_LOCATION nicht deklariert werden, wenn sie auf Android 13 oder höher ausgerichtet sind.

Weitere Informationen zur Berechtigung für WLAN-Geräte in der Nähe

Neue Berechtigung zur 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 nutzen kann, muss sie jedoch mindestens eines der folgenden Kriterien erfüllen:

  • Deine App ist eine Wecker-App oder eine Timer-App.
  • Ihre App ist eine Kalender-App, die Benachrichtigungen für anstehende Termine anzeigt.

Wenn deine App exakte Alarme einstellt, aber keinen der beiden Fälle in der Liste oben erfüllt, musst du stattdessen die Berechtigung SCHEDULE_EXACT_ALARM deklarieren. Außerdem solltest du dich auf die Situation vorbereiten, in der der Nutzer den Zugriff auf deine App verweigert.

Downgrade-Berechtigungen für Entwickler

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.
  • Best Practices für Berechtigungen einhalten, 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 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. Das v3.1-Signaturschema unterstützt insbesondere das SDK-Versions-Targeting, wodurch die Rotation auf einen späteren Release der Plattform ausgerichtet werden kann.

Das Signaturschema v3.1 verwendet eine Block-ID, die auf 12L oder niedriger nicht erkannt wird. Daher wendet die Plattform das folgende Verhalten für Unterzeichner an:

  • Geräte mit Android 13 oder höher verwenden den gedrehten Signer im v3.1-Block.
  • Geräte, auf denen ältere Versionen von Android ausgeführt werden, ignorieren den rotierten Unterzeichner und verwenden stattdessen den ursprünglichen Unterzeichner im v3.0-Block.

Bei Anwendungen, bei denen der Signaturschlüssel noch nicht rotiert wurde, ist keine weitere Aktion erforderlich. Wenn diese Anwendungen die Rotation festlegen, wendet das System standardmäßig das Signaturschema der Version 3.1 an.

Anwendungen, die bereits rotiert wurden und den rotierten Signaturschlüssel im Signaturblock der Version 3.0 weiter 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 Anwendungen, 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 ob der Fehler wiederholbar ist. Sie können auch die Methoden für die Schlüsselgenerierung ändern und (Signieren, Verschlüsselung) verwenden, um die neuen Ausnahmen auszulösen. Die verbesserten Fehlerberichte sind nicht auf das Generieren von Schlüsseln beschränkt. Sie sollten jetzt alles Nötige liefern, um die Schlüsselgenerierung noch einmal zu versuchen.

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

Android 13 baut auf den Tablet-Optimierungen, die in Android 12 eingeführt wurden, und dem Feature Drop 12L auf – einschließlich Optimierungen für die System-UI, verbessertem Multitasking und verbesserter Kompatibilitätsmodi. Prüfe im Rahmen der Tests, ob deine Apps auf Tablets und anderen Geräten mit großen Bildschirmen optimal dargestellt werden.

Weitere Informationen zu Neuerungen und Tests finden Sie auf der Seite Unterstützung für Tablets und große Bildschirme.

Grafik

Programmierbare Shader

Ein animierter AGSL-Shader, nach Vorlage dieses GLSL-Shaders.

Ab Android 13 unterstützt das System programmierbare RuntimeShader-Objekte, deren Verhalten mithilfe der Android Graphics Shading Language (AGSL) definiert wird. AGSL nutzt einen Großteil seiner Syntax mit GLSL, funktioniert aber innerhalb der Android-Rendering-Engine, um das Zeichnen im Android-Canvas anzupassen und Inhalte der Ansicht zu filtern. Android verwendet diese Shader intern, um Rippleeffekte, Unkenntlichmachungen und Overscroll-Funktionen zu implementieren. Mit Android 13 und höher kannst du ähnliche erweiterte Effekte für deine App erstellen.

Verbesserungen für 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 bereitstellen und SurfaceFlinger mehr Kontext zum Frame-Lebenszyklus liefern. Ähnlich wie zuvor können Anwendungen einen Callback an Choreographer posten und Frame-Zeitachseninformationen empfangen. In Android 13 (API-Level 33) gibt Choreographer mehrere mögliche Präsentationszeiten und die entsprechenden Frame-Fristen zurück. Anwendungen können den Zeitpunkt der Präsentation auswählen und anschließend SurfaceFlinger Ihrer Wahl benachrichtigen. SurfaceFlinger versucht dann nicht, Transaktionen oder Latch-Zwischenspeicher vor dem gewünschten Präsentationszeitpunkt anzuwenden.

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

Kamera

HDR-Videoaufnahme

Ab Android 13 unterstützen die Camera2-APIs HDR-Videoaufnahmen (High Dynamic Range), sodass Sie HDR-Videos mit Ihrer Kamera in der Vorschau ansehen und aufzeichnen können. Im Vergleich zu Standard Dynamic Range (SDR) bietet HDR einen größeren Farbbereich und erhöht den dynamischen Bereich der Leuchtdichtekomponente (von derzeit 100 cd/m2 auf 1.000 cd/m2). Dies führt zu einer besser realen Qualität des Videos mit satteren Farben, helleren Spitzlichtern und dunkleren Schatten.

Weitere Informationen zur HDR-Videoaufnahme finden Sie in der Dokumentation zur HDR-Videoaufzeichnung.

Medien

Spatial Audio

Spatial Audio ist ein immersives Audioerlebnis, durch das Medieninhalte für Nutzer realistischer klingen. Weitere Informationen zur Integration dieser Funktion finden Sie in unserer Dokumentation zu Spatial Audio.

Antizipatorisches Audio-Routing

Damit Medien-Apps besser erkennen können, wie ihre Audiodaten weitergeleitet werden, werden in Android 13 in der Klasse AudioManager Audioroute APIs eingeführt. Mit der getAudioDevicesForAttributes() API lässt sich eine Liste von Geräten abrufen, die zur Wiedergabe der angegebenen Audioinhalte verwendet werden können. Mit der getDirectProfilesForAttributes() API lässt sich feststellen, ob Ihr Audiostream direkt abgespielt werden kann. Verwende diese APIs, um den besten AudioFormat für deinen Audiotrack zu ermitteln.

Bedienungshilfen

Audiobeschreibung

Mit Android 13 (API-Level 33) wird eine neue systemweite Einstellung für Bedienungshilfen eingeführt, mit der Nutzer Audiobeschreibungen in allen Apps aktivieren können. Eine Audiobeschreibung ist eine zusätzliche Erzählspur, bei der ein Sprecher durch die Präsentation spricht und beschreibt, was während natürlicher Audiopausen auf dem Bildschirm passiert. Apps können der Präferenz des Nutzers für Audiobeschreibungstracks folgen, indem sie diese 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 die Änderung der Nutzereinstellungen überwachen, indem sie AccessbilityManager einen Listener 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

Updates zu OpenJDK 11

Unter Android 13 werden die Kernbibliotheken von Android aktualisiert, um sie an den LTS-Release OpenJDK 11 mit Bibliotheksupdates und Java 11-Sprachunterstützung für Anwendungs- und Plattformentwickler anzupassen. Die in Android 13 eingeführten Änderungen an der Kernbibliothek werden auch für Android 12-Geräte über ein Google Play-Systemupdate für das ART-Mainline-Modul verfügbar sein.

Unter Android 13 wurden die folgenden Änderungen an den Hauptbibliotheken vorgenommen:

  • Unterstützung des Keywords 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) zur einfacheren Anpassung einer Sammlung an ein Array.

  • 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 Wiederverwendung von Sockets.

  • Funktionen NullReader, NullWriter, InputStream, OutputStream und transferTo() Reader, die gelesene Zeichen an einen Writer übertragen.

  • Es wurden Funktionen für die URL-Codierung und -Decodierung mit Charsets hinzugefügt.

  • Charset-Funktion 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 VarHandle intern verwendet wird.

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