Funktionen und APIs – Übersicht

Android 13 bietet Entwicklern viele neue Funktionen und APIs. In den folgenden Abschnitten erfahren Sie mehr über Funktionen für Ihre Apps und wie Sie die zugehörigen APIs verwenden.

Eine detaillierte Liste der neuen, geänderten und entfernten APIs finden Sie im API-Vergleichsbericht. Details zu neuen APIs finden Sie in der Android-API-Referenz. Neue APIs sind zur besseren Sichtbarkeit hervorgehoben. Informationen zu Bereichen, in denen sich Plattformänderungen auf Ihre Apps auswirken können, finden Sie unter Verhaltensänderungen in Android 13 für Apps, die auf Android 13 ausgerichtet sind und Verhaltensänderungen in Android 13 für alle Apps.

Produktivität von Entwicklern und Tools

Designs für App-Symbole

Nutzer aktiviert Designs für App-Symbole
Thematische App-Symbole in Android 13 aktivieren

Ab Android 13 können Sie sich für thematische App-Symbole entscheiden. Mit dieser Funktion werden App-Symbole in unterstützten Android-Launchern so eingefärbt, dass sie die Farben 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 monochromatisches App-Symbol bereitstellen und im Manifest über das Element <adaptive-icon> auf das monochromatische App-Symbol verweisen. Wenn ein Nutzer themenbezogene App-Symbole aktiviert hat (d. h. den Schalter Themenbezogene Symbole in den Systemeinstellungen aktiviert hat) und der Launcher diese Funktion unterstützt, verwendet das System die Farben des vom Nutzer ausgewählten Hintergrundbilds und Designs, um die Tönungsfarbe zu bestimmen, die dann auf das monochrome App-Symbol angewendet wird.

Das thematisierte App-Symbol wird in den folgenden Fällen NICHT auf dem Startbildschirm angezeigt, stattdessen wird das adaptive oder standardmäßige App-Symbol angezeigt:

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

Weitere Informationen und eine Anleitung finden Sie unter Adaptive Symbole.

App-spezifische Spracheinstellungen

App-Sprachen in den Systemeinstellungen

Häufig legen mehrsprachige Nutzer für ihre Systemsprache eine Sprache fest, z. B. Englisch, möchten bestimmte Apps aber in anderen Sprachen nutzen, z. B. auf Niederländisch, Chinesisch oder Hindi. Damit Apps diesen Nutzern eine bessere Nutzererfahrung bieten können, werden in Android 13 die folgenden Funktionen für Apps eingeführt, die mehrere Sprachen unterstützen:

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

    Ihre App muss das Attribut android:localeConfig im Manifest deklarieren, um dem System mitzuteilen, dass sie mehrere Sprachen unterstützt. Weitere Informationen finden Sie in der Anleitung zum Erstellen einer Ressourcendatei und Deklarieren dieser Datei im Manifest 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 benutzerdefinierter Sprachauswahlen in der App verwenden, sorgen so für eine einheitliche Nutzererfahrung, unabhängig davon, wo Nutzer ihre Spracheinstellungen auswählen. Die öffentlichen APIs helfen Ihnen auch, die Menge an Boilerplate-Code zu reduzieren. Sie unterstützen unterteilte APKs und Auto Backup for Apps zum Speichern von Benutzerspracheinstellungen 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 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 Unterstützung von Text und Sprache

Android 13 enthält mehrere Funktionen, die Text und Sprache verbessern und Ihnen helfen, eine optimierte Nutzererfahrung zu bieten. Diese werden in den folgenden Abschnitten beschrieben:

Schnellere Silbentrennung

Durch die Silbentrennung wird umgebrochener Text besser lesbar und die Benutzeroberfläche wird anpassungsfähiger. Ab Android 13 ist die Leistung der Silbentrennung um bis zu 200% optimiert. Sie können sie also in Ihrer TextView aktivieren, ohne dass die Rendering-Leistung dadurch beeinträchtigt wird. Wenn Sie eine schnellere Silbentrennung aktivieren möchten, verwenden Sie die Häufigkeiten fullFast oder normalFast in setHyphenationFrequency().

APIs für die Textkonvertierung

Nutzer, die Sprachen wie Japanisch und Chinesisch sprechen, verwenden Eingabemethoden mit phonetischen Buchstaben, die die Suche und Funktionen wie die automatische Vervollständigung oft verlangsamen. In Android 13 können Apps die neue API zur Textkonvertierung aufrufen, damit Nutzer schneller und einfacher finden, wonach sie suchen. Bisher musste ein japanischer Nutzer beispielsweise für die Suche folgende Schritte ausführen:

  1. Geben Sie Hiragana als phonetische Aussprache des Suchbegriffs ein, z. B. für einen Ort oder einen App-Namen.
  2. Mit der Tastatur Hiragana-Zeichen in Kanji umwandeln
  3. Mit den Kanji-Zeichen noch einmal suchen
  4. Endlich Suchergebnisse erhalten

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

Verbesserte Zeilenhöhen für nicht lateinische Schriftsysteme

In Android 13 werden nicht lateinische Schriftsysteme wie Tamil, Birmanisch, Telugu und Tibetisch durch eine für jede Sprache angepasste Zeilenhöhe besser dargestellt. Die neuen Zeilenhöhen verhindern das Abschneiden von Text und verbessern die Positionierung von Zeichen. Ihre App kann diese Verbesserungen nutzen, indem Sie sie auf Android 13 ausrichten. Testen Sie Ihre Apps mit dem neuen Zeilenabstand, da sich die Änderungen auf die Benutzeroberfläche in nicht lateinischen Sprachen auswirken können.

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

Verbesserter Textumbruch für Japanisch

Ab Android 13 können TextViews Text nach Bunsetsu (der kleinsten Einheit von Wörtern, die natürlich klingt) oder nach Phrasen statt nach Zeichen umbrechen, um ansprechender und lesbarer zu sein. Sie können diese Umbruchfunktion nutzen, indem Sie android:lineBreakWordStyle="phrase" mit TextViews verwenden.

Zeilenumbruch für japanischen Text mit aktivierter (unten) und deaktivierter (oben) Formatierung für Wortgruppen.

Unicode-Bibliotheksupdates

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 einige wichtige Änderungen:

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

Farbvektorschriftarten

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

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

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

API für die Platzierung von Schnelleinstellungen

Über die Schnelleinstellungen im Benachrichtigungsfeld können Nutzer Einstellungen ändern oder schnell Aktionen ausführen, ohne den Kontext einer App zu verlassen. Für Apps, die benutzerdefinierte Kacheln anbieten, machen wir es Nutzern einfacher, Ihre Kacheln zu finden und den Schnelleinstellungen hinzuzufügen. Mit einer neuen API zum Platzieren von Kacheln kann Ihre App den Nutzer jetzt auffordern, Ihre 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 Ihre App zu verlassen. Bisher musste er dazu die Schnelleinstellungen aufrufen.

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

Vorschau der Zwischenablage

Ab Android 13 zeigt das System eine visuelle Standardbestätigung an, wenn Inhalte in die Zwischenablage kopiert werden. Die neue Bestätigung bietet folgende Vorteile:

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

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

Widget „Kopieren/Einfügen“
Neue Benutzeroberfläche, die angezeigt wird, wenn Inhalte in die Zwischenablage kopiert werden.

Intelligente „Zurück“-Geste

Mit Android 13 wird eine vorhersagende Zurück-Geste für Android-Geräte wie Smartphones, Geräte mit großen Displays und Foldables eingeführt. Damit Sie diese Funktion nutzen können, müssen Sie Ihre App aktualisieren.

Eine ausführliche Dokumentation finden Sie unter App für die Unterstützung der vorhersagenden Zurück-Geste aktualisieren. Unser Codelab kann dir auch weiterhelfen.

Bluetooth LE Audio

LE Audio ist eine kabellose Audio-Technologie, 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 abonnieren, um Informationen, Unterhaltung oder Barrierefreiheit zu erhalten. Es wurde entwickelt, um Nutzern hochwertiges Audio ohne Beeinträchtigung der Akkulaufzeit zu ermöglichen und nahtlos zwischen verschiedenen Anwendungsfällen zu wechseln, die mit Bluetooth Classic nicht möglich sind. Ab Android 13 bietet das System integrierte Unterstützung für LE Audio, sodass Entwickler diese Funktionen auf kompatiblen Geräten kostenlos nutzen können.

MIDI 2.0

Ab Android 13 unterstützt das System den MIDI 2.0-Standard, einschließlich der Möglichkeit, MIDI 2.0-Hardware über USB zu verbinden. Dieser Standard bietet Funktionen wie eine höhere Auflösung für Controller, eine bessere Unterstützung für nicht-westliche Intonation und ausdrucksstärkere Performance durch Controller pro Note.

Verbesserungen der Effizienz des Splash-Screens

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

  • Die Dauer der Animation wird direkt aus dem AnimatedVectorDrawable abgeleitet. Vor Android 13 musste windowSplashScreenAnimationDuration direkt festgelegt werden.

  • Mit dem neuen Attribut windowSplashScreenBehavior haben Sie mehr Kontrolle darüber, ob das Symbol auf dem Startbildschirm unter Android 13 und höher immer angezeigt wird.

Eine ausführliche Dokumentation finden Sie unter Splash Screens.

ART-Optimierungen

In Android 13 (API-Level 33) und höher ermöglicht ART einen viel schnelleren Wechsel zwischen nativem Code und Java-Code.JNI-Aufrufe sind jetzt bis zu 2,5-mal schneller. Die Verarbeitung von Laufzeitreferenzen wurde ebenfalls überarbeitet, sodass sie größtenteils nicht blockierend ist, was die Ruckler weiter reduziert. Außerdem können Sie mit der öffentlichen API Reference.refersTo() nicht erreichbare Objekte schneller zurückfordern. Der Interpreter ist jetzt schneller, da die Suche nach Klassen und Methoden optimiert wurde. ART führt auch mehr Bytecode-Überprüfungen bei der Installation durch. So wird die Überprüfung zur Laufzeit vermieden und die Startzeiten von Apps bleiben kurz.

Datenschutz und Sicherheit

Sichereres Exportieren von kontextregistrierten Empfängern

Um Laufzeit-Receiver sicherer zu machen, können Sie in Android 13 angeben, ob ein registrierter Broadcast-Receiver exportiert und für andere Apps auf dem Gerät sichtbar sein soll. In früheren Versionen von Android konnte jede App auf dem Gerät eine ungeschützte Broadcast-Nachricht an einen dynamisch registrierten Empfänger senden, sofern dieser Empfänger nicht durch eine Signaturberechtigung geschützt war.

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

Bildauswahl

In Android 13 (API‑Level 33) und höher ist eine Bildauswahl enthalten. 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. So gewähren sie Ihrer App nicht Zugriff auf die gesamte Mediathek. Dies ist die empfohlene Methode für den Zugriff auf die Fotos und Videos des Nutzers.

Die Bildauswahl bietet Nutzern mehr Datenschutz, da Ihre App keine Laufzeitberechtigungen deklarieren muss. Außerdem bietet die Fotogalerieauswahl eine integrierte, standardisierte Benutzeroberfläche für Apps, die für eine einheitlichere Nutzererfahrung sorgt.

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

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

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

Neue Berechtigung für die Verwendung exakter Alarme

Wenn 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 ein Wecker oder ein Timer.
  • Ihre App ist ein Kalender, der Benachrichtigungen für anstehende Termine anzeigt.

Wenn in Ihrer App exakte Alarme eingerichtet werden, aber keiner der beiden Fälle in der vorherigen Liste zutrifft, deklarieren Sie stattdessen weiterhin die Berechtigung SCHEDULE_EXACT_ALARM und bereiten Sie sich auf den Fall vor, 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.
  • Halten Sie sich an 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

Mit Android 13 wird das APK-Signaturschema v3.1 eingeführt, das eine Verbesserung des bestehenden APK-Signaturschemas v3 darstellt. Dieses Schema behebt einige der bekannten Probleme mit dem APK-Signaturschema v3 in Bezug auf die Rotation. Insbesondere unterstützt das Signaturschema v3.1 die SDK-Versionsausrichtung, sodass die Rotation auf eine spätere Version der Plattform ausgerichtet werden kann.

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

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

Für Apps, bei denen der Signaturschlüssel noch nicht rotiert wurde, sind keine zusätzlichen Maßnahmen erforderlich. Wenn diese Apps rotieren, wendet das System standardmäßig das Signaturschema v3.1 an.

Apps, bei denen der Signaturschlüssel bereits rotiert wurde und die den rotierten Signaturschlüssel weiterhin im Signaturblock v3.0 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 höchstens 32 ist.

Verbesserte Fehlerberichte in Keystore und KeyMint

Bei Apps, die Schlüssel generieren, bieten Keystore und KeyMint jetzt detailliertere und genauere Fehlerindikatoren. Wir haben unter java.security.ProviderException eine Hierarchie von Ausnahmeklassen mit Android-spezifischen Ausnahmen hinzugefügt, die Keystore-/KeyMint-Fehlercodes enthalten und angeben, ob der Fehler wiederholt werden kann. Sie können auch die Methoden für die Schlüsselgenerierung und ‑verwendung (Signieren, Verschlüsselung) ändern, um die neuen Ausnahmen auszulösen. Die verbesserte Fehlerberichterstellung ist nicht auf die Schlüsselgenerierung beschränkt und sollte Ihnen jetzt die Informationen liefern, die Sie für einen erneuten Versuch der Schlüsselgenerierung benötigen.

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

Android 13 baut auf den Tablet-Optimierungen auf, die in Android 12 und dem 12L-Feature-Drop eingeführt wurden, darunter Optimierungen für die System-UI, besseres Multitasking und verbesserte Kompatibilitätsmodi. Achten Sie beim Testen darauf, dass Ihre Apps auf Tablets und anderen Geräten mit großen Bildschirmen optimal aussehen.

Weitere Informationen zu den Neuerungen und den zu testenden Aspekten finden Sie auf der Seite Unterstützung für Tablets und große Displays.

Grafik

Programmierbare Shader

Ein animierter AGSL-Shader, der an diesen GLSL-Shader angepasst wurde.

Ab Android 13 unterstützt das System programmierbare RuntimeShader-Objekte, deren Verhalten mit der Android Graphics Shading Language (AGSL) definiert wird. AGSL hat viel mit GLSL gemeinsam, wird aber in der Android-Rendering-Engine verwendet, um das Zeichnen im Canvas von Android sowie das Filtern von View-Inhalten anzupassen. Android verwendet diese Shader intern, um Wellen-Effekte, Unschärfe und Overscroll-Streckung zu implementieren. Mit Android 13 und höher können Sie ähnliche erweiterte Effekte für Ihre App erstellen.

Verbesserungen bei Choreographer

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 liefern und SurfaceFlinger mehr Kontext zum Frame-Lebenszyklus hinzufügen. Ähnlich wie zuvor können Apps einen Callback an Choreographer senden und Informationen zur Frame-Zeitachse empfangen. In Android 13 (API‑Level 33) gibt Choreographer mehrere mögliche Präsentationszeiten und die entsprechenden Frame-Deadlines zurück. Apps können die Präsentationszeit auswählen und SurfaceFlinger anschließend über die Auswahl benachrichtigen. SurfaceFlinger versucht dann nicht, Transaktionen oder Latch-Puffer vor der gewünschten Präsentationszeit 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 HDR-Videoaufnahme (High Dynamic Range). So können Sie HDR-Videoinhalte mit Ihrer Kamera in der Vorschau ansehen und aufnehmen. Im Vergleich zu Standard Dynamic Range (SDR) bietet HDR einen größeren Farbumfang und erhöht den Dynamikumfang der Luminanzkomponente (von den aktuellen 100 cd/m² auf Tausende von cd/m²). 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 eindrucksvolles Audioerlebnis, das Medieninhalte für Ihre Nutzer realistischer klingen lässt. Weitere Informationen zur Integration in dieses Feature finden Sie in unserer Dokumentation zu Spatial Audio.

Antizipatorisches Audiorouting

Damit Media-Apps erkennen können, wie ihr Audio weitergeleitet wird, werden in Android 13 Audio-Routing-APIs in der Klasse AudioManager eingeführt. Mit der API getAudioDevicesForAttributes() kannst du eine Liste der Geräte abrufen, die zum Abspielen des angegebenen Audiosignals verwendet werden können. Mit der API getDirectProfilesForAttributes() kannst du herausfinden, ob dein Audiostream direkt abgespielt werden kann. Mit diesen APIs können Sie die beste AudioFormat für Ihren Audiotrack ermitteln.

Bedienungshilfen

Audiodeskription

In Android 13 (API‑Level 33) wird eine neue systemweite Einstellung für Bedienungshilfen eingeführt, mit der Nutzer Audiodeskriptionen für alle Apps aktivieren können. Eine Audiodeskription ist ein zusätzlicher gesprochener Track, in dem ein Sprecher die Präsentation beschreibt und in natürlichen Pausen im Audio erklärt, was auf dem Bildschirm passiert. Apps können die Nutzereinstellung für Audio-Beschreibungs-Tracks abrufen, indem sie sie mit isAudioDescriptionRequested() abfragen, wie im folgenden Code-Snippet gezeigt:

Kotlin

private lateinit var accessibilityManager: AccessibilityManager

// In onCreate():
accessibilityManager = getSystemService(AccessibilityManager::class.java)

// Where your media player is initialized
if (accessibilityManager.isAudioDescriptionRequested) {
    // User has requested to enable audio descriptions
}

Java

private AccessibilityManager accessibilityManager;

// In onCreate():
accessibilityManager = getSystemService(AccessibilityManager.class);

// Where your media player is initialized
if(accessibilityManager.isAudioDescriptionRequested()) {
    // User has requested to enable audio descriptions
}

Apps können Änderungen der Nutzereinstellungen überwachen, indem sie einen Listener für AccessbilityManager hinzufügen:

Kotlin

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

override fun onStart() {
    super.onStart()

    accessibilityManager.addAudioDescriptionRequestedChangeListener(mainExecutor, listener)
}

override fun onStop() {
    super.onStop()

    accessibilityManager.removeAudioDescriptionRequestedChangeListener(listener)
}

Java

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

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

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

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

    accessibilityManager.removeAudioDescriptionRequestedChangeListener(listener);
}

Hauptfunktion

OpenJDK 11-Updates

Mit Android 13 werden die Core-Bibliotheken von Android aktualisiert, um sie an die OpenJDK 11 LTS-Version anzupassen. Dies umfasst sowohl Bibliotheksupdates als auch die Unterstützung der Java 11-Sprache für Anwendungs- und Plattformentwickler. Die in Android 13 eingeführten Änderungen an der Core Library sind auch für Geräte mit Android 12 verfügbar. Dazu ist ein Google Play-Systemupdate für das ART Mainline-Modul erforderlich.

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

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

  • 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, mit denen gelesene Zeichen in ein Writer übertragen werden.

  • Es wurde eine Funktion zum Codieren und Decodieren von URLs mit Charsets hinzugefügt.

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

  • Neue Funktionen für 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 OpenJDK 11 API mit VarHandle.

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