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 API-Diff-Bericht. Weitere Informationen zu neuen APIs finden Sie in der Android API-Referenz. Neue APIs sind hervorgehoben. 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 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 App-Symboldesigns aktiviert hat
  • Wenn Ihre App kein einfarbiges App-Symbol hat
  • Wenn der Launcher keine App-Symbole mit Design 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 auch andere Sprachen auswählen, z. B. 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.

    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, 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 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 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 keine Sprachen unterstützen, sind von diesen Änderungen nicht betroffen.

Verbesserte Unterstützung für Text und Sprache

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 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. 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 die Eingabemethoden für phonetische Buchstaben, 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. Hiragana als phonetische Aussprache des Suchbegriffs eingeben (z. B. ein Ort oder ein App-Name)
  2. Verwende die Tastatur, um die Hiragana-Zeichen in Kanji zu konvertieren
  3. Mit den Kanji-Zeichen recherchieren
  4. 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 Skripts

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. 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 diesen Umbruch nutzen, indem Sie android:lineBreakWordStyle="phrase" mit TextViews verwenden.

Zeilenumbruch für japanischen Text mit aktiviertem Satzstil (unten) und ohne (oben).

Aktualisierungen der Unicode-Bibliothek

Android 13 enthält die neuesten Verbesserungen, Fehlerkorrekturen und Änderungen aus Unicode ICU 70, Unicode CLDR 40 und Unicode 14.0.

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 Spanisch es, Italienisch it, Portugiesisch pt und Portugiesisch (Portugal) pt‑PT eingeführt. Ähnlich wie beim Französischen in CLDR v38 wird dieses Verfahren für große Mengen verwendet.

Farbige Vektorschriften

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 äußerst kompaktes Schriftformat, das in jeder Größe schnell und scharf gerendert wird.

Bei den meisten Apps übernimmt das System alles und COLRv1 funktioniert problemlos. 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:

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 jetzt einfacher, Kacheln zu finden und den Schnelleinstellungen hinzuzufü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.

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 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.
  • 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 Feature-Seite Kopieren und Einfügen.

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

Intelligente „Zurück“-Touch-Geste

Mit Android 13 wird eine vorausschauende Zurück-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. Du kannst 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. 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.

Verbesserte Effizienz beim Ladebildschirm

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 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. 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

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 Apps verfügbar, die mindestens eine der folgenden Funktionen bieten:

Bildauswahl

Android 13 (API-Level 33) und höher bietet eine Bildauswahl. Wenn Ihre App die Bildauswahl startet, können Nutzer bestimmte Bilder und Videos auswählen, um sie mit Ihrer App zu teilen, 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 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 „WLAN-Geräte in der Nähe“

Neue Berechtigung zur Verwendung exakter Wecker

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:

  • Ihre App ist ein Wecker oder ein Timer.
  • 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.

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.
  • 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. 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 auf 12L oder niedriger 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.

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 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 ob der Fehler wiederholbar ist. 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

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

Ab Android 13 unterstützt das System programmierbare RuntimeShader-Objekte, deren Verhalten mit 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 Zeitachsen für Frames und mehr Kontext zum SurfaceFlinger-Lebenszyklus bieten. Ä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-Puffer vor dem gewünschten Präsentationszeitpunkt anzuwenden.

Wenn Ihre App die neuen Choreographer- und SurfaceControl-Methoden verwendet, können Sie den Frame-Lebenszyklus der App in einem Perfetto-Trace ansehen.

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). 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 Einbindung dieser Funktion findest du in der Dokumentation zu Spatial Audio.

Antizipatorisches Audiorouting

Damit Medien-Apps besser erkennen können, wie ihr Audio weitergeleitet wird, 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. 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 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 die vom Nutzer bevorzugte Audiobeschreibungstracks verfolgen, 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

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 werden auch für Android 12-Geräte über ein Google Play-Systemupdate für das ART-Mainline-Modul verfügbar sein.

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

  • Unterstützung für das Keyword 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() und stream() in den java.util-Klassen Optional, OptionalDouble, OptionalInt und OptionalLong.

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

  • NullReader, NullWriter, InputStream, OutputStream und transferTo() Reader-Funktionen, die gelesene Zeichen an eine Writer übergeben.

  • Es wurden Funktionen für die URL-Codierung und ‑Dekodierung 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 Compilerunterstü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.