Funktionen und APIs – Übersicht

Mit Android 13 werden tolle neue Funktionen und APIs für Entwickler eingeführt. In den folgenden Abschnitten erfahren Sie mehr über Funktionen für Ihre Apps und erhalten einen Einstieg in die zugehörigen APIs.

Eine detaillierte Liste der neuen, geänderten und entfernten APIs finden Sie im API-Diff-Bericht. Weitere Informationen zu neuen APIs finden Sie in der Android API-Referenz. Neue APIs sind hervorgehoben. Informationen zu Bereichen, in denen sich Plattformänderungen auf Ihre Apps auswirken können, finden Sie in den Änderungen am Verhalten von Android 13 für Apps, die auf Android 13 ausgerichtet sind und in den Änderungen am Verhalten von Android 13 für alle Apps.

Produktivität und Tools für Entwickler

Designs für App-Symbole

Nutzer aktivieren Designs für App-Symbole
Design für App-Symbole unter Android 13 aktivieren

Ab Android 13 können Sie thematische App-Symbole aktivieren. Bei dieser Funktion werden App-Symbole in unterstützten Android-Launchern eingefärbt, um die Farbgebung des ausgewählten Hintergrunds und anderer Themen des Nutzers zu übernehmen.

Damit diese Funktion unterstützt wird, muss Ihre App sowohl ein adaptives Symbol als auch ein einfarbiges App-Symbol enthalten. Außerdem muss das einfarbige App-Symbol über das Element <adaptive-icon> im Manifest referenziert werden. Wenn ein Nutzer thematische App-Symbole aktiviert hat (d. h. die Option Thematische Symbole in den Systemeinstellungen aktiviert hat) und der Launcher diese Funktion unterstützt, verwendet das System die Farben des ausgewählten Hintergrunds und des ausgewählten Designs des Nutzers, um die Tönung zu bestimmen, die dann auf das einfarbige App-Symbol angewendet wird.

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

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

Weitere Informationen und eine Anleitung finden Sie im Hilfeartikel 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 für diese Nutzer besser geeignet sind, werden in Android 13 die folgenden Funktionen für Apps eingeführt, die mehrere Sprachen unterstützen:

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

    Ihre App muss das Attribut android:localeConfig im Manifest der App angeben, um dem System mitzuteilen, dass sie mehrere Sprachen unterstützt. Weitere Informationen finden Sie in der Anleitung zum Erstellen einer Ressourcendatei und Deklarieren in der Manifestdatei Ihrer App.

  • Zusätzliche APIs: Mit diesen öffentlichen APIs, z. B. den Methoden setApplicationLocales() 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 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 entsprechende APIs auch in AndroidX verfügbar. Wir empfehlen die Verwendung der APIs, die in Appcompat 1.6.0-beta01 oder höher hinzugefügt wurden.

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

Verbesserte Unterstützung für Text und Sprache

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

Schnellere Silbentrennung

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 von Sprachen wie Japanisch und Chinesisch verwenden phonetische Eingabemethoden, die die Suche und Funktionen wie die automatische Vervollständigung oft verlangsamen. In Android 13 können Apps die neue Textkonvertierungs-API aufrufen, damit Nutzer schneller und einfacher das Gesuchte 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. Hiragana-Zeichen mit der Tastatur in Kanji umwandeln
  3. Noch einmal mit den Kanji-Zeichen suchen
  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 Schriften

In Android 13 wird die Darstellung nicht lateinischer Schriften wie Tamil, Birmanisch, Telugu und Tibetisch verbessert. Dazu wird eine für jede Sprache angepasste Zeilenhöhe verwendet. Die neuen Zeilenhöhen verhindern das Überschneiden und verbessern die Positionierung von Zeichen. Sie können diese Verbesserungen für Ihre App nutzen, indem Sie sie auf Android 13 ausrichten. Testen Sie Ihre Apps unbedingt, wenn Sie das neue Zeilenabstand verwenden, da sich die Änderungen auf die Benutzeroberfläche in nicht lateinischen Sprachen auswirken können.

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

Verbesserter Textumbruch für japanische Texte

Ab Android 13 können TextViews Text nach Bunsetsu (die kleinste natürliche Worteinheit) oder nach Wortgruppen statt nach Zeichen umbrechen, um japanische Apps ansprechender und leserlicher zu gestalten. Sie können diesen Umbruch nutzen, indem Sie android:lineBreakWordStyle="phrase" mit TextViews verwenden.

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

Unicode-Bibliotheksupdates

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

Hier sind einige wichtige Änderungen:

  • Für Englisch (Kanada) en‑CA und Englisch (Republik der Philippinen) en‑PH werden 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 im Französischen, das in CLDR v38 eingeführt wurde, wird diese Option für große Zahlen 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 einfach. 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 die Schnelleinstellungen

Über die Schnelleinstellungen im Benachrichtigungs-Schieberegler können Nutzer ganz einfach Einstellungen ändern oder schnell Aktionen ausführen, ohne den Kontext einer App zu verlassen. Bei Apps mit benutzerdefinierten Kacheln können Nutzer Ihre Kacheln jetzt noch einfacher finden und den Schnelleinstellungen hinzufügen. Mit 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. Ü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.

Zwischenablagevorschau

Ab Android 13 zeigt das System eine standardmäßige visuelle Bestätigung an, wenn Inhalte der Zwischenablage hinzugefügt werden. Die neue Bestätigung hat folgende Auswirkungen:

  • Bestätigt, dass die Inhalte erfolgreich kopiert wurden.
  • Eine Vorschau der kopierten Inhalte.

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 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. Wenn Sie diese Funktion unterstützen möchten, müssen Sie Ihre App aktualisieren.

Eine ausführliche Dokumentation finden Sie unter App so aktualisieren, dass eine vorweggenommene Geste zum Zurückgehen unterstützt wird. 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 Audioinhalte mit Freunden und Familie teilen und übertragen oder öffentliche Übertragungen für Informationen, Unterhaltung oder Barrierefreiheit abonnieren. 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, eine bessere Unterstützung für nicht westliche Intonation und eine ausdrucksstärkere Leistung durch Controller pro Note.

Verbesserungen bei der Effizienz des Startbildschirms

Unter Android 13 wird die Effizienz animierter Startbildschirme in der SplashScreen API verbessert:

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

ART-Optimierungen

In Android 13 (API-Level 33) und höher beschleunigt ART den Wechsel zu und von nativem Code erheblich.JNI-Aufrufe sind jetzt bis zu 2,5-mal schneller. Die Verarbeitung von Laufzeitreferenzen wurde ebenfalls überarbeitet, damit sie größtenteils nicht blockierend ist. Dadurch wird die Ruckelung weiter reduziert. Außerdem können Sie die öffentliche API Reference.refersTo() verwenden, um nicht erreichbare Objekte früher wiederzuverwenden. Außerdem ist der Interpreter jetzt dank optimierter Klassen- und Methodenabfragen schneller. Außerdem führt ART bei der Installation mehr Bytecode-Überprüfungen durch, wodurch die Kosten für die Überprüfung zur Laufzeit vermieden und die App-Startzeiten verkürzt werden.

Datenschutz und Sicherheit

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, wählen Nutzer bestimmte Bilder und Videos aus, die sie für Ihre App freigeben möchten, z. B. Profilbilder, anstatt Ihrer App Zugriff auf die gesamte Mediathek zu gewähren. Dies ist die empfohlene Methode, um auf die Fotos und Videos des Nutzers zuzugreifen.

Die Bildauswahl bietet Nutzern einen besseren Datenschutz, da für Ihre App keine Laufzeitberechtigungen deklariert werden müssen. Außerdem bietet die Bildauswahl eine integrierte, standardisierte Benutzeroberfläche für Apps, was für eine einheitlichere Nutzererfahrung sorgt.

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

In Android 13 (API-Level 33) wird eine neue Laufzeitberechtigung in der Berechtigungsgruppe NEARBY_DEVICES für Apps eingeführt, die die Verbindungen eines Geräts zu nahe gelegenen Zugangspunkten über WLAN verwalten. Diese Apps müssen die neue Berechtigung NEARBY_WIFI_DEVICES angeben, wenn sie verschiedene WLAN-APIs aufrufen. Außerdem müssen Apps, die den physischen Standort nicht aus den WLAN-APIs ableiten, die Berechtigung ACCESS_FINE_LOCATION nicht deklarieren, wenn sie auf Android 13 oder höher ausgerichtet sind.

Weitere Informationen zur Berechtigung „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:

  • Ihre App ist ein Wecker oder ein Timer.
  • Ihre App ist eine Kalender-App, die Benachrichtigungen zu anstehenden Terminen anzeigt.

Wenn Ihre App exakte Wecker stellt, aber keiner der in der vorherigen Liste aufgeführten Fälle zutrifft, müssen Sie weiterhin die Berechtigung SCHEDULE_EXACT_ALARM angeben und sich darauf vorbereiten, dass der Nutzer den Zugriff auf Ihre App verweigert.

Vom Entwickler aufgehobene App-Berechtigungen

Ab Android 13 kann Ihre App den Zugriff auf nicht verwendete Laufzeitberechtigungen widerrufen. Mit dieser API kann Ihre App datenschutzfreundliche Aufgaben wie die folgenden ausführen:

  • Entfernen Sie nicht verwendete Berechtigungen.
  • Beachten Sie die Best Practices für Berechtigungen, um das Vertrauen der Nutzer zu stärken. Sie können den Nutzern ein Dialogfeld mit den Berechtigungen anzeigen, die Sie proaktiv widerrufen haben.

APK-Signaturschema v3.1

Android 13 unterstützt das APK-Signaturschema 3.1, das das vorhandene APK-Signaturschema 3 verbessert. Mit diesem Schema werden einige der bekannten Probleme mit dem APK-Signaturschema v3 in Bezug auf die Rotation behoben. 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 unter 12L nicht erkannt wird. Daher wendet die Plattform das folgende Verhalten für Unterzeichner an:

  • Auf Geräten mit Android 13 oder höher wird der rotierende Unterzeichner im Block v3.1 verwendet.
  • Auf Geräten mit älteren Android-Versionen wird der rotierende Signaturschlüssel ignoriert und stattdessen der ursprüngliche Signaturschlüssel im Block „v3.0“ verwendet.

Bei Apps, deren Signaturschlüssel noch nicht rotiert wurde, sind keine weiteren Maßnahmen erforderlich. Wenn diese Apps die Bildschirmausrichtung ändern, wendet das System standardmäßig das Signaturschema v3.1 an.

Bei Apps, bei denen der Signaturschlüssel bereits rotiert wurde und die den rotierten Signaturschlüssel weiterhin im Signaturblock von Version 3.0 verwenden möchten, muss die apksigner-Aufrufanweisung aktualisiert werden:

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

...wobei API_LEVEL 32 oder niedriger ist.

Verbesserte Fehlerberichte in Keystore und KeyMint

Für Apps, die Schlüssel generieren, bieten Keystore und KeyMint jetzt detailliertere und genauere Fehlerindikatoren. Unter java.security.ProviderException haben wir eine Hierarchie von Ausnahmeklassen hinzugefügt, die Android-spezifische Ausnahmen wie Keystore-/KeyMint-Fehlercodes und Informationen dazu enthält, ob der Fehler noch einmal versucht werden kann. Sie können auch die Methoden zur Schlüsselgenerierung und -verwendung (Signatur, Verschlüsselung) ändern, um die neuen Ausnahmen zu werfen. Die verbesserte Fehlermeldung ist nicht auf die Schlüsselgenerierung beschränkt und sollte Ihnen jetzt alles Notwendige zur Wiederholung der Schlüsselgenerierung liefern.

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

Android 13 baut auf den Tablet-Optimierungen, 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 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, der von diesem GLSL-Shader adaptiert wurde.

Ab Android 13 unterstützt das System programmierbare RuntimeShader-Objekte, deren Verhalten mithilfe der Android Graphics Shading Language (AGSL) definiert wird. AGSL hat einen Großteil seiner Syntax mit GLSL gemeinsam, funktioniert aber innerhalb der Android-Rendering-Engine, um das Malen im Canvas von Android sowie das Filtern von Ansichtsinhalten anzupassen. Android verwendet diese Shader intern, um Welleneffekte, Weichzeichner und Überscroll-Dehnung zu implementieren. Mit Android 13 und höher können Sie ähnliche erweiterte Effekte für Ihre App erstellen.

Verbesserungen bei der Choreografie

In Android 13 werden öffentliche API-Methoden für Choreographer und ASurfaceControl eingeführt, die Apps mehr Informationen zu den möglichen Zeitachsen für Frames und mehr Kontext zum SurfaceFlinger-Lebenszyklus bieten. Ähnlich wie zuvor können 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-Frist zurück. Anwendungen können den Zeitpunkt der Präsentation auswählen und anschließend SurfaceFlinger Ihrer Wahl benachrichtigen. SurfaceFlinger versucht dann nicht, vor der gewünschten Präsentationszeit Transaktionen oder Latch-Buffer 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). Das Ergebnis ist eine Videoqualität, die der Realität näher kommt, 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 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 Audiorouting

Damit Medien-Apps besser nachvollziehen können, wie ihr Audiosignal weitergeleitet wird, werden in Android 13 Audio-Routing-APIs in der Klasse AudioManager eingeführt. Mit der getAudioDevicesForAttributes() API kannst du eine Liste der Geräte abrufen, die zur Wiedergabe der angegebenen Audioinhalte verwendet werden können. Mit der getDirectProfilesForAttributes() API kannst du feststellen, ob dein Audiostream direkt wiedergegeben werden kann. Mit diesen APIs kannst du die beste AudioFormat für deinen Audiotrack ermitteln.

Bedienungshilfen

Audiodeskription

Android 13 (API-Level 33) führt eine neue systemweite Einstellung für Bedienungshilfen ein, mit der Nutzer Audiobeschreibungen für alle Apps aktivieren können. Eine Audiobeschreibung ist ein zusätzlicher Erzähltrack, bei dem ein Erzähler die Präsentation kommentiert und während natürlicher Pausen im Audiotrack beschreibt, was auf dem Bildschirm passiert. Apps können die 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 Einstellungsänderungen von Nutzern überwachen, indem sie einen Listener zu AccessbilityManager hinzufügen:

Kotlin

private val listener =
    AccessibilityManager.AudioDescriptionRequestedChangeListener { enabled ->
        // Preference changed; reflect its state in your media player
    }

override fun onStart() {
    super.onStart()

    accessibilityManager.addAudioDescriptionRequestedChangeListener(mainExecutor, listener)
}

override fun onStop() {
    super.onStop()

    accessibilityManager.removeAudioDescriptionRequestedChangeListener(listener)
}

Java

private AccessibilityManager.AudioDescriptionRequestedChangeListener listener = enabled -> {
    // Preference changed; reflect its state in your media player
};

@Override
protected void onStart() {
    super.onStart();

    accessibilityManager.addAudioDescriptionRequestedChangeListener(getMainExecutor(), listener);
}

@Override
protected void onStop() {
    super.onStop();

    accessibilityManager.removeAudioDescriptionRequestedChangeListener(listener);
}

Hauptfunktion

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

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

  • Unterstützung 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 ‑Dekodierung 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 die OpenJDK 11 API, wobei VarHandle intern verwendet wird.

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