Funktionen und APIs – Übersicht

Android 13 bietet tolle neue Funktionen und APIs für Entwickler. 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 „API-Unterschiede“. Weitere Informationen zu neuen APIs finden Sie in der Android API-Referenz. Neue APIs sind hervorgehoben. Wenn du mehr darüber erfahren möchtest, in welchen Bereichen sich Plattformänderungen auf deine Apps auswirken können, solltest du dir die Verhaltensänderungen bei Android 13 für Apps, die auf Android 13 ausgerichtet sind und für alle Apps ansehen.

Produktivität der Entwicklungsteams und Tools

Designs für App-Symbole

Nutzer aktiviert App-Symboldesigns
Symboldesigns unter Android 13 aktivieren

Ab Android 13 können Sie App-Symboldesigns aktivieren. Mit 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.

Zur Unterstützung dieser Funktion muss Ihre App sowohl ein adaptives Symbol als auch ein einfarbiges App-Symbol bereitstellen und vom <adaptive-icon>-Element im Manifest auf das einfarbige App-Symbol verweisen. Wenn ein Nutzer in den Systemeinstellungen die Ein/Aus-Schaltfläche Symboldesigns aktiviert hat und der Launcher diese Funktion unterstützt, verwendet das System die Einfärbung des vom Nutzer ausgewählten Hintergrunds und Designs, um die Färbung zu bestimmen, die dann auf das monochromatische App-Symbol angewendet wird.

In den folgenden Fällen wird auf dem Startbildschirm NICHT das App-Symbol, sondern das adaptive oder standardmäßige App-Symbol angezeigt:

  • Wenn der Nutzer keine App-Symboldesigns aktiviert hat
  • Wenn in Ihrer App kein einfarbiges App-Symbol angezeigt wird
  • Wenn der Launcher keine App-Symboldesigns unterstützt

Weitere Informationen und Anleitungen finden Sie unter Adaptive Symbole.

App-spezifische Spracheinstellungen

App-spezifische 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 andere Sprachen auswählen, z. B. Niederländisch, Chinesisch oder Hindi. Damit Apps diesen Nutzern besser zur Verfügung stehen, werden in 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.

    Ihre App muss im Manifest der App das Attribut android:localeConfig deklarieren, um dem System mitzuteilen, dass sie mehrere Sprachen unterstützt. Weitere Informationen finden Sie in der Anleitung zum Erstellen einer Ressourcendatei und ihrer 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, in denen diese APIs zum Erstellen einer benutzerdefinierten In-App-Sprachauswahl verwendet werden, sorgen also 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. Sie unterstützen unterteilte APKs und die automatische Sicherung für Apps, um Nutzer-Spracheinstellungen auf App-Ebene zu speichern.

    Für die 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 umfasst verschiedene Text- und Sprachverbesserungen, mit denen du die Nutzung optimieren kannst. In den folgenden Abschnitten wird beschrieben:

Schnellere Bindestriche

Durch die Verwendung von Bindestrichen ist umgebrochener Text leichter zu lesen und Ihre UI passt sich besser an. Ab Android 13 wurde die Leistung der Bindestriche um bis zu 200% optimiert, sodass Sie sie in TextView aktivieren können, ohne dass sich dies auf die Rendering-Leistung auswirkt. Für eine schnellere Bindestriche können Sie die Häufigkeiten fullFast oder normalFast in setHyphenationFrequency() verwenden.

Text Conversion APIs

Menschen, die Sprachen wie Japanisch und Chinesisch sprechen, verwenden Eingabemethoden für die Lautschrift, die oft die Suche und Funktionen wie die automatische Vervollständigung verlangsamen. In Android 13 können Apps die neue Text Conversion API aufrufen, damit Nutzer schneller und einfacher finden, wonach sie suchen. Früher mussten japanische Nutzer zum Beispiel folgende Schritte ausführen:

  1. Geben Sie Hiragana als die phonetische Aussprache des Suchbegriffs ein (z. B. den Namen eines Ortes oder einer App).
  2. Mithilfe der Tastatur Hiragana-Zeichen in Kanji umwandeln
  3. Mit Kanji-Zeichen recherchieren
  4. Letzte Suchergebnisse erhalten

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

Verbesserte Zeilenhöhen bei nicht lateinischen Schriftzeichen

Unter Android 13 wird die Darstellung nichtlateinischer Schriften (z. B. Tamil, Burmesisch, Telugu und Tibetisch) verbessert, indem eine Zeilenhöhe verwendet wird, die an die jeweilige Sprache angepasst wird. Durch die neue Zeilenhöhe wird das Abschneiden verhindert und die Positionierung der Zeichen verbessert. Von diesen Verbesserungen kann deine App profitieren, wenn sie auf Android 13 ausgerichtet ist. Testen Sie Ihre Anwendungen unbedingt, wenn Sie den neuen Zeilenabstand verwenden, da sich die Änderungen auf die UI in nicht-lateinischen Sprachen auswirken könnten.

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

Verbesserter japanischer Textumbruch

Ab Android 13 kann TextViews Text von Bunsetsu (der kleinsten Worteinheit, die natürlich klingt) oder Wortgruppen anstelle von Zeichen umbrechen, um ausgefeiltere und besser lesbare japanische Anwendungen zu erstellen. Diese Umbrüche können Sie 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 sind einige wichtige Änderungen:

  • Englisch (Kanada) en‑CA und Englisch (Republik der Philippinen) en‑PH verwenden beide Englisch (USA) en-Übersetzungsressourcen, wenn keine Übersetzungsressourcen verfügbar sind, anstelle von 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 das in CLDR v38 eingeführte Französisch wird diese Methode für große Zahlen verwendet.

Farbvektorschriftarten

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

Ab Android 13 unterstützt das System Rendering-Unterstü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 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:

Quick Settings Placement API

Über die Schnelleinstellungen in der Benachrichtigungsleiste können Nutzer bequem Einstellungen ändern oder Schnellaktionen ausführen, ohne den Kontext einer App zu verlassen. Für Apps mit benutzerdefinierten Kacheln wird es für Nutzer jetzt noch einfacher, Ihre Kacheln zu finden und zu den Schnelleinstellungen hinzuzufügen. Mithilfe einer neuen Tile Placement API kann Ihre App den Nutzer jetzt auffordern, Ihre benutzerdefinierte Kachel direkt zu den aktiven Kacheln für Schnelleinstellungen hinzuzufügen. Über ein neues Systemdialogfeld kann der Nutzer die Kachel in einem Schritt hinzufügen, ohne die App zu verlassen, anstatt die Schnelleinstellungen aufrufen zu müssen, um die Kachel hinzuzufügen.

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 führt folgende Schritte aus:

  • Dadurch wird bestätigt, dass der Inhalt kopiert wurde.
  • Stellt eine Vorschau des kopierten Inhalts bereit.

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

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

Vorhersehbare Touch-Geste „Zurück“

Android 13 bietet eine vorausschauende Zurück-Geste für Android-Geräte wie Smartphones, große Bildschirme und faltbare Smartphones. Damit diese Funktion unterstützt wird, musst du deine App aktualisieren.

Eine ausführliche Dokumentation finden Sie unter App zur Unterstützung einer vorausschauenden Backgeste aktualisieren. Du kannst auch unser Codelab ausprobieren.

Bluetooth LE Audio

Low Energy (LE) Audio ist kabelloses Audio, das Bluetooth Classic ersetzt und bestimmte Anwendungsfälle und Verbindungstopologien ermöglicht. Damit können Nutzer Audiodaten teilen und mit Freunden und Familie teilen oder öffentliche Broadcasts zu Information, Unterhaltung oder Barrierefreiheit abonnieren. Sie ist so konzipiert, dass Nutzer High-Fidelity-Audioinhalte ohne Beeinträchtigung der Akkulaufzeit erhalten 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 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 zu verbinden. Dieser Standard bietet Features wie eine höhere Auflösung für Controller, eine bessere Unterstützung nicht westlicher Intonation und eine ausdrucksstärkere Leistung bei Verwendung von Controllern pro Notiz.

Verbesserte Effizienz des Ladebildschirms

Mit Android 13 wird die Effizienz animierter Ladebildschirme in der Splash Screen API verbessert:

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

  • Mit dem neuen Attribut windowSplashScreenBehavior hast du mehr Kontrolle darüber, ob das Symbol in deiner App in Android 13 und höher immer auf dem Ladebildschirm angezeigt wird.

Eine ausführliche Dokumentation finden Sie unter Ladebildschirme.

ART-Optimierungen

In Android 13 (API-Level 33) und höher macht ART den Wechsel zu und vom nativen Code viel schneller.JNI-Aufrufe sind jetzt bis zu 2,5-mal schneller. Die Verarbeitung von Laufzeitreferenzen wurde ebenfalls überarbeitet, sodass sie größtenteils nicht blockiert ist, was die Verzögerung weiter reduziert. Darüber hinaus können Sie die öffentliche Reference.refersTo() API verwenden, um nicht erreichbare Objekte schneller zurückzufordern. Der Interpreter ist jetzt dank optimierter Klassen- und Methodensuche jetzt schneller. ART führt bei der Installation außerdem mehr Bytecode-Prüfungen durch, wodurch die Kosten für eine Verifizierung während der Laufzeit vermieden werden und die Anwendungsstartzeiten schnell bleiben.

Datenschutz und Sicherheit

Sichererer Export von kontextregistrierten Empfängern

Um Laufzeitempfänger sicherer zu machen, bietet Android 13 die Möglichkeit, in deiner 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 Anwendungen verfügbar, die mindestens einen der folgenden Anforderungen erfüllen:

Zielgenaue Bildauswahl

Android 13 (API-Level 33) und höher verfügt über eine Bildauswahl. Wenn Ihre App die Bildauswahl startet, wählen Nutzer bestimmte Bilder und Videos aus, die mit Ihrer App geteilt werden sollen, z. B. Profilbilder, anstatt Ihrer App Zugriff auf die gesamte Medienbibliothek zu gewähren. Das ist die empfohlene Methode für den Zugriff auf die Fotos und Videos des Nutzers.

Die Bildauswahl bietet Nutzern mehr Datenschutz, da in Ihrer App keine Laufzeitberechtigungen angegeben werden müssen. Darüber hinaus bietet die Bildauswahl eine integrierte, standardisierte UI für Apps, die für eine einheitlichere User Experience sorgt.

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

Mit Android 13 (API-Level 33) wird eine neue Laufzeitberechtigung in der NEARBY_DEVICES-Berechtigungsgruppe 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 nicht den physischen Standort über die Wi-Fi APIs ableiten, muss außerdem 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 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 eine Wecker-App oder ein Timer.
  • Ihre App ist eine Kalender-App, die Benachrichtigungen für anstehende Termine anzeigt.

Wenn Ihre App exakte Alarme festlegt, aber keiner der in der vorherigen Liste genannten Fälle erfüllt, deklarieren Sie stattdessen weiterhin die Berechtigung SCHEDULE_EXACT_ALARM und seien Sie auf die Situation vorbereitet, in der der Nutzer den Zugriff auf Ihre App verweigert.

Berechtigungen für das Downgrade von Entwicklerkonten

Ab Android 13 kann deine App den Zugriff auf nicht verwendete Laufzeitberechtigungen widerrufen. Mit dieser API kann Ihre App datenschutzfreundliche Aufgaben ausführen. Dazu gehören:

  • Entfernen Sie nicht verwendete Berechtigungen.
  • Beachten Sie die Best Practices für Berechtigungen, um das Vertrauen der Nutzer zu stärken. Es kann sinnvoll sein, den Nutzern ein Dialogfeld mit den Berechtigungen anzuzeigen, die Sie proaktiv widerrufen haben.

APK-Signaturschema v3.1

Unter Android 13 wird jetzt das APK-Signaturschema v3.1 unterstützt, 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, das eine Rotation für ein späteres Release der Plattform ermöglicht.

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

  • Geräte mit Android 13 oder höher verwenden den rotierten Unterzeichner im v3.1-Block.
  • Geräte mit älteren Android-Versionen ignorieren den rotierten Unterzeichner und verwenden stattdessen den ursprünglichen Unterzeichner im Version 3.0-Block.

Bei Apps, deren Signaturschlüssel noch nicht rotiert wurde, sind keine weiteren Maßnahmen erforderlich. Immer wenn diese Apps rotieren, wendet das System standardmäßig das v3.1-Signaturschema an.

Anwendungen, die bereits rotiert wurden und ihren rotierten Signaturschlüssel im v3.0-Signaturblock 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

Dabei ist API_LEVEL 32 oder niedriger.

Verbesserte 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 hinzugefügt, mit Android-spezifischen Ausnahmen, zu denen Keystore/KeyMint-Fehlercodes gehören und ob der Fehler wiederholbar ist. Sie können auch die Methoden für die Schlüsselgenerierung und -nutzung (Signierung, Verschlüsselung) ändern, um die neuen Ausnahmen auszulösen. Die verbesserten Fehlerberichte sind nicht auf die Schlüsselgenerierung beschränkt und sollten Ihnen nun die notwendigen Informationen liefern, um die Schlüsselgenerierung zu wiederholen.

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

Android 13 baut auf den in Android 12 eingeführten Tablet-Optimierungen und dem Feature Drop für 12L auf – darunter Optimierungen für die System-UI, verbessertes Multitasking und verbesserte Kompatibilitätsmodi. Achte bei den Tests darauf, dass deine Apps auf Tablets und anderen Geräten mit großem Bildschirm optimal dargestellt werden.

Weitere Informationen dazu, was es Neues gibt und was Sie testen sollten, finden Sie auf der Seite zur Unterstützung von Tablets und großen Bildschirmen.

Grafik

Programmierbare Shader

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

Ab Android 13 unterstützt das System programmierbare RuntimeShader-Objekte, wobei das Verhalten über die Android Graphics Shading Language (AGSL) definiert wird. Ein Großteil der Syntax von AGSL ist mit GLSL identisch, funktioniert jedoch innerhalb der Android-Rendering-Engine, um das Painting im Canvas von Android anzupassen und Ansichtsinhalte zu filtern. Android verwendet diese Shader intern, um Ripple-Effekte, Unkenntlichmachung und das Verlängern des Overscroll-Effekts zu implementieren. Mit Android 13 und höher können Sie ähnliche erweiterte Effekte für Ihre 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 möglichen Frame-Zeitleisten liefern und SurfaceFlinger zusätzlichen Kontext zum Frame-Lebenszyklus hinzufügen. Ähnlich wie zuvor können Apps einen Callback an Choreographer posten und Informationen zur Frame-Zeitachse erhalten. In Android 13 (API-Ebene 33) gibt Choreographer mehrere mögliche Präsentationszeiten und die entsprechenden Frame-Deadlines zurück. Anwendungen können die Präsentationszeit auswählen und anschließend SurfaceFlinger benachrichtigen. SurfaceFlinger versucht dann nicht, Transaktionen oder Latch-Zwischenspeicher vor der gewünschten Präsentationszeit anzuwenden.

Wenn deine App die neuen Methoden Choreographer und SurfaceControl 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 HDR-Videoaufnahme (High Dynamic Range). Damit kannst du HDR-Videos mit deiner Kamera in der Vorschau ansehen und aufnehmen. Im Vergleich zu Standard Dynamic Range (SDR) bietet HDR einen größeren Farbbereich und eine größere Dynamik 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 Spitzlichtern und dunkleren Schatten.

Weitere Informationen zur HDR-Videoaufnahme findest du in der Dokumentation zur HDR-Videoaufnahme.

Medien

Spatial Audio

Spatial Audio ist ein eindrucksvolles Audioerlebnis, das Medieninhalte für Nutzer realistischer macht. Weitere Informationen zur Integration dieser Funktion findest du in der Dokumentation zu Spatial Audio.

Vorausschauendes Audiorouting

Damit Medien-Apps erkennen können, wie ihre Audiodaten geroutet werden, führt Android 13 Audioroute APIs in der Klasse AudioManager ein. Mit der getAudioDevicesForAttributes() API können Sie eine Liste von Geräten abrufen, auf denen die angegebenen Audioinhalte wiedergegeben werden können. Mit der getDirectProfilesForAttributes() API lässt sich ermitteln, ob Ihr Audiostream direkt abgespielt werden kann. Mit diesen APIs kannst du die beste AudioFormat für deinen Audiotrack bestimmen.

Barrierefreiheit

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 die Präsentation durchspricht und beschreibt, was während natürlicher Audiopausen auf dem Bildschirm passiert. Apps können den vom Nutzer bevorzugten Audiobeschreibungsspuren nachgehen, indem diese mit isAudioDescriptionRequested() abgefragt werden, 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

OpenJDK 11-Updates

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

Bei Android 13 wurden die folgenden Änderungen an den Kernbibliotheken vorgenommen:

  • Unterstützung des Schlüsselworts 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 das Anpassen einer Sammlung an ein Array zu vereinfachen.

  • 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-Objekt übertragen.

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

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

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

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

  • Aktualisiert java.util.concurrent auf der OpenJDK 11 API mit VarHandle intern.

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