Funktionen und APIs – Übersicht

Mit Android 13 werden tolle neue Funktionen und APIs für Entwickler eingeführt. Die Abschnitte finden Sie unten Informationen zu den Funktionen für Ihre Apps und zu den ersten Schritten mit der zugehörigen APIs.

Eine detaillierte Liste der neuen, geänderten und entfernten APIs finden Sie in der Bericht zu API-Unterschieden Weitere Informationen zu neuen APIs finden Sie in der Referenz zur Android API. Neue APIs sind hervorgehoben für Sichtbarkeit. Außerdem erfahren Sie, in welchen Bereichen sich auf Ihre Apps auswirken, achten Sie auf die Verhaltensänderungen von Android 13 für Apps die auf Android 13 und für alle Apps.

Produktivität und Tools für Entwickler

Designs für App-Symbole

<ph type="x-smartling-placeholder">
</ph> Nutzer aktiviert App-Symboldesigns
App-Symboldesigns unter Android 13 aktivieren

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

Um diese Funktion zu unterstützen, muss deine App sowohl eine Adaptives Symbol und ein monochromatischen App-Symbol und verweisen Sie auf das monochromatische App-Symbol <adaptive-icon>-Element im Manifest. Wenn ein Nutzer eine themenbezogene App aktiviert hat Symbole (d. h. die Ein/Aus-Schaltfläche für Symboldesigns muss in den Systemeinstellungen aktiviert sein). und diese Funktion vom Launcher unterstützt wird, verwendet das System die Farbgebung den Hintergrund und das Design des Nutzers, um die Färbung festzulegen, die dann gilt für das einfarbige App-Symbol.

Auf dem Startbildschirm wird NICHT das App-Symboldesign angezeigt, sondern stattdessen das adaptive App-Symbol oder das Standard-App-Symbol in einem der folgenden Szenarien:

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

Weitere Informationen und Anleitungen finden Sie unter Adaptive Symbole.

App-spezifische Spracheinstellungen

<ph type="x-smartling-placeholder">
</ph>
App-Sprachen in den Systemeinstellungen

In vielen Fällen stellen mehrsprachige Nutzer ihre Systemsprache auf eine Sprache ein, z. B. Englisch ist, möchte aber für bestimmte Apps andere Sprachen auswählen, Niederländisch, Chinesisch oder Hindi. Um die Nutzerfreundlichkeit in Apps zu verbessern werden mit Android 13 die folgenden Funktionen für Apps eingeführt, die mehrere Sprachen:

  • Systemeinstellungen: An einem zentralen Ort können Nutzer eine bevorzugte Sprache für die jeweilige App.

    Deine App muss das Attribut android:localeConfig in der , um dem System mitzuteilen, dass mehrere Sprachen unterstützt werden. Weitere Informationen finden Sie in der Anleitung für Eine Ressourcendatei erstellen und in der Manifestdatei Ihrer App deklarieren

  • Zusätzliche APIs: Diese öffentlichen APIs, z. B. die setApplicationLocales() und getApplicationLocales() können Apps in LocaleManager 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, ihre Nutzenden eine einheitliche User Experience haben, unabhängig davon, wo sie wählen Spracheinstellungen anpassen. Mit den öffentlichen APIs können Sie auch des Boilerplate-Codes. Außerdem unterstützen sie geteilte APKs Automatische Sicherung für Apps zum Speichern auf App-Ebene Spracheinstellungen des Nutzers.

    Entsprechende APIs für die Abwärtskompatibilität mit früheren Android-Versionen sind auch in AndroidX verfügbar. Wir empfehlen die Verwendung von APIs hinzugefügt in Appcompat 1.6.0-beta01 oder höher.

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

Verbesserte Unterstützung von Text und Sprachen

Android 13 umfasst verschiedene Text- und Sprachverbesserungen bei Funktionen, bieten Sie ein ausgefeilteres Erlebnis, was in den folgenden Abschnitten beschrieben wird:

Schnellere Bindestrichsetzung

Die Bindestrichfunktion macht umgebrochenen Text leichter zu lesen und trägt dazu bei, Ihre Benutzeroberfläche übersichtlicher zu gestalten anpassungsfähig sein. Ab Android 13 wird die Bindestrich-Leistung um etwa 200 %, sodass Sie sie in Ihrem TextView aktivieren können, ohne dass die Rendering-Leistung steigern. Für eine schnellere Bindestrichsetzung verwenden Sie die fullFast oder normalFast Häufigkeiten in setHyphenationFrequency()

Textkonvertierungs-APIs

Personen, die Sprachen wie Japanisch und Chinesisch sprechen, verwenden Lautschrift Eingabemethoden, die die Suche und Funktionen wie die automatische Fertigstellung. Unter Android 13 können Apps die neue Text-Conversion-Funktion API, damit Nutzer die gesuchten Informationen schneller und einfacher. Früher wurde z. B. nach japanische Nutzer müssen die folgenden Schritte ausführen:

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

Mit der neuen Textkonvertierungs-API können japanische Nutzer Hiragana- Ergebnisse der Kanji-Suche sofort live sehen, ohne die Schritte 2 und 3 zu überspringen.

Verbesserte Zeilenhöhen für nicht lateinische Skripts

Android 13 verbessert die Anzeige nicht-lateinischer Schriften (z. B. Tamil, Burmesisch, Telugu und Tibetisch), indem Sie eine an die jeweilige Sprache angepasste Zeilenhöhe verwenden. Die neuen Zeilenhöhen verhindern das Überschneiden und verbessern die Positionierung von Zeichen. Allein durch die Ausrichtung auf Android 13 kann deine App von diesen Verbesserungen profitieren. Testen Sie Ihre Apps unbedingt, wenn Sie den neuen Zeilenabstand verwenden, da die Änderungen kann sich auf die Benutzeroberfläche in nicht-lateinischen Sprachen auswirken.

<ph type="x-smartling-placeholder">
</ph>
Zeilenhöhen, die in Android 12 (oben) abgeschnitten wurden, werden jetzt besser positioniert und nicht in Android 13 (siehe unten) abgeschnitten.

Verbesserter japanischer Textumbruch

Ab Android 13 können TextViews Text von Bunsetsu umbrechen (der kleinsten Worteinheit, die natürlich) oder Wortgruppen anstelle von Zeichen, um besser lesbar und verständlicher Japanische Anwendungen. Sie können dieses Wrapping nutzen, indem Sie android:lineBreakWordStyle="phrase" mit TextViews.

<ph type="x-smartling-placeholder">
</ph>
Japanischer Textumbruch mit aktiviertem Wortgruppenstil (unten) und ohne (oben).

Aktualisierungen der Unicode-Bibliothek

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

Hier die wichtigsten Änderungen:

  • Englisch (Kanada) en‑CA und Englisch (Republik Philippinen) en‑PH verwenden beide Englisch (USA) en Übersetzungsressourcen, wenn keine Übersetzungsressourcen verfügbar sind statt Englisch (Vereinigtes Königreich) en‑GB.
  • Die Pluralkategorie many wurde für das Spanische es und das Italienische it eingeführt. Portugiesisch pt und Portugiesisch (Portugal) pt‑PT. Ähnlich in CLDR v38 eingeführt. wird für große Zahlen verwendet.

Farbvektorschriftarten

<ph type="x-smartling-placeholder">
</ph>
COLRv1-Vektor-Emoji (links) und Bitmap-Emoji (rechts)

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

Bei den meisten Apps übernimmt das System alles und COLRv1 funktioniert problemlos. Sie können jedoch Falls Ihre App 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:

Placement-API für Schnelleinstellungen

Die Schnelleinstellungen in der Benachrichtigungsleiste können Einstellungen vornehmen oder Schnellaktionen ausführen, ohne den Kontext einer App zu verlassen. Für Apps mit benutzerdefinierten Kacheln, Jetzt können Nutzer deine Kacheln einfacher finden und zu Quick hinzufügen Einstellungen. Mit einem neuen Tile Placement API verwenden, kann der Nutzer in deiner App jetzt aufgefordert werden, deine benutzerdefinierte Kachel direkt zum aktiven Kacheln für Schnelleinstellungen. Über ein neues Systemdialogfeld kann der Nutzer die ohne die App verlassen zu müssen, statt die Schnellansicht aufrufen zu müssen. Einstellungen, um die Kachel hinzuzufügen.

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

Vorschau der Zwischenablage

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

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

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

<ph type="x-smartling-placeholder">
</ph> Widget kopieren/einfügen <ph type="x-smartling-placeholder">
</ph> Neue Benutzeroberfläche, die angezeigt wird, wenn Inhalte in die Zwischenablage eingefügt werden

Vorhersagbare Touch-Geste „Zurück“

Mit Android 13 wird eine „Zurück“-Touch-Geste für Android-Geräte wie Smartphones, große Displays und faltbare Geräte. Zur Unterstützung dieser Funktion müssen Sie aktualisiere deine App.

Eine ausführliche Dokumentation findest du unter App aktualisieren, um eine automatische Vervollständigung zu unterstützen Touch-Geste Sie können auch versuchen, finden Sie in unserem Codelab.

Bluetooth LE Audio

Low Energy (LE) Audio ersetzt kabelloses Audio Bluetooth Classic und ermöglicht bestimmte Anwendungsfälle und Verbindungstopologien. Es ermöglicht Nutzern, ihre Audioinhalte an Freunde und Familienmitglieder zu senden und zu übertragen, oder öffentliche Broadcasts abonnieren, um Informationen, Unterhaltung oder Zugänglichkeit zu erhalten. Sie wurde entwickelt, um sicherzustellen, dass Nutzende High-Fidelity-Audio empfangen können, ohne verringert die Akkulaufzeit und kann nahtlos zwischen Schutzhüllen, die mit Bluetooth Classic nicht möglich sind. Ab Android 13 werden die unterstützt LE Audio, sodass Entwickler auf kompatiblen Geräten kostenlos.

MIDI 2.0

Ab Android 13 unterstützt das System auch 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 von nicht-westliche Intonation und ausdrucksstärkere Leistung bei Verwendung pro Note Controller.

Verbesserte Effizienz beim Ladebildschirm

Android 13 verbessert die Effizienz animierter Startbildschirme beim Splash Screen-API:

  • Das System leitet die Animationsdauer direkt aus dem AnimatedVectorDrawable Vor Android 13 musste das windowSplashScreenAnimationDuration direkt.

  • Mehr Kontrolle über das neue Attribut windowSplashScreenBehavior ob das Symbol in Ihrer App unter Android 13 immer auf dem Ladebildschirm angezeigt wird und höher.

Eine ausführliche Dokumentation finden Sie unter Ladebildschirme.

ART-Optimierungen

Unter Android 13 (API-Level 33) und höher macht ART den Wechsel zu nativen Anzeigen dank JNI-Aufrufen bis zu 2, 5-mal schneller. Laufzeitreferenz die Datenverarbeitung überarbeitet wurde, sodass sie mehr blockiert wird. reduziert Verzögerungen. Darüber hinaus können Sie das Reference.refersTo() öffentlichen API verwenden, um nicht erreichbare Objekte schneller zurückzugewinnen. Sie werden feststellen, dank optimierter Klassen- und Methodensuche ist der Interpreter jetzt schneller. Auch ART führt bei der Installation eine weitere Byte-Code-Überprüfung durch, und die App-Startzeiten schnell halten.

Datenschutz und Sicherheit

Sicherer Export kontextregistrierter Empfänger

Um Laufzeitempfänger sicherer zu machen, führt Android 13 die neue kann deine App angeben, ob ein registrierter Übertragungsempfänger sollte exportiert werden und für andere Apps auf dem Gerät sichtbar sein. Bei früheren Versionen kann jede App auf dem Gerät eine ungeschützte Übertragung an eine dynamisch registrierter Empfänger, es sei denn, dieser wurde durch Signaturberechtigung.

Diese Exportkonfiguration ist für Apps verfügbar, die mindestens eine der Folgendes:

Bildauswahl

Android 13 (API-Level 33) und höher enthält ein Bildauswahl Nutzererfahrung. Wenn Ihre App die Bildauswahl können Nutzer bestimmte Bilder und Videos auswählen, um sie mit Ihrer App zu teilen, wie Profilbilder verwenden, anstatt Ihrer App Zugriff auf das gesamte in der Mediathek. Dies ist die empfohlene Methode, um auf die Fotos und Videos.

Die Bildauswahl bietet Nutzern einen besseren Datenschutz, da Ihre App Laufzeitberechtigungen deklarieren müssen. Darüber hinaus bietet die Bildauswahl eine integrierte, standardisierte Benutzeroberfläche für Apps, die eine einheitlichere Nutzererfahrung ermöglicht. Nutzererfahrung.

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

Mit Android 13 (API-Level 33) wird eine neue Laufzeitberechtigung im Feld Berechtigungsgruppe „NEARBY_DEVICES“ für Apps, die die Verbindungen eines Geräts zu verwalten Zugangspunkte in der Nähe über WLAN nutzen. Für diese Apps muss die neue Berechtigung deklariert werden. NEARBY_WIFI_DEVICES, wenn sie mehrere verschiedene Wi-Fi APIs aufrufen. Solange die Apps nicht den physischen Standort des WLANs ermitteln, APIs müssen sie die Methode ACCESS_FINE_LOCATION wenn sie auf Android 13 oder höher ausgerichtet sind.

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

Neue Berechtigung zur Verwendung exakter Alarme

Wenn deine App auf Android 13 oder höher ausgerichtet ist, kannst du die USE_EXACT_ALARM Berechtigung, die Ihrer App automatisch gewährt wird. Damit Ihre App diese Berechtigung verwenden. Es muss jedoch mindestens eine der folgenden Voraussetzungen erfüllen: Kriterien:

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

Wenn Ihre App exakte Alarme einstellt, aber keine der in den in der vorherigen Liste, geben Sie weiter SCHEDULE_EXACT_ALARM und seien Sie auf eine Situation vorbereitet, in der der Nutzer dies ablehnt. auf deine App zugreifen.

Downgrade-Berechtigungen für Entwickler

Ab Android 13 kann Ihre App den Zugriff auf nicht verwendete Laufzeitberechtigungen. Diese API ermöglicht es Ihrer App, den Datenschutz zu verbessern, z. B. die folgenden:

  • Entfernen Sie nicht verwendete Berechtigungen.
  • Best Practices für Berechtigungen einhalten, um das Vertrauen der Nutzer zu stärken. Vielleicht möchtest du Erwägen Sie, den Nutzern ein Dialogfeld mit Ihren Berechtigungen zu zeigen. proaktiv widerrufen werden.

APK-Signaturschema v3.1

Android 13 unterstützt das APK-Signaturschema v3.1, die bestehende APK Signature Scheme v3: Dieses Schema um einige der bekannten Probleme mit dem APK-Signaturschema v3 bezüglich der Rotation. Insbesondere hat die Version 3.1 unterstützt das SDK-Versions-Targeting, wodurch die Rotation eine spätere Version der Plattform auszuwählen.

Das Signaturschema v3.1 verwendet eine Block-ID, die auf 12 L oder niedriger. Daher wendet die Plattform die folgendes Verhalten für Unterzeichner:

  • Auf Geräten mit Android 13 oder höher wird der rotierte Anmeldename verwendet den v3.1-Block.
  • Geräte mit älteren Android-Versionen ignorieren den rotierten Unterzeichner und verwenden Sie stattdessen den ursprünglichen Unterzeichner im v3.0-Block.

Für Apps, bei denen der Signaturschlüssel noch nicht rotiert wurde, sind keine weiteren Aktion ausführen. Immer, wenn diese Apps eine Rotation festlegen, wendet das System Version 3.1 an. Signaturschema.

Apps, die bereits rotiert wurden und die ihre rotierte Signatur weiterhin verwenden möchten im Signaturblock von v3.0 ihre apksigner Aufruf:

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

...wobei API_LEVEL 32 oder niedriger ist.

Bessere Fehlerberichte in Keystore und KeyMint

Für Anwendungen, die Schlüssel generieren, bieten Keystore und KeyMint jetzt detailliertere und Fehlerindikatoren zu ermitteln. Wir haben eine Ausnahmeklassenhierarchie hinzugefügt, java.security.ProviderException, mit Ausnahme von Android-spezifischen Ausnahmen, die Folgendes umfassen: Keystore/KeyMint-Fehlercodes, und ob der Fehler wiederholt werden kann. Sie können auch die Methoden für Schlüssel generiert und verwendet (Signatur, Verschlüsselung), um die neuen Ausnahmen auszulösen. Die Verbesserte Fehlerberichte sind nicht auf die Schlüsselgenerierung beschränkt und sollten was Sie brauchen, um die Schlüsselgenerierung noch einmal zu versuchen.

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

Android 13 baut auf den Tablet-Optimierungen auf, die mit Android 12 eingeführt wurden, Feature Drop mit 12L – einschließlich Optimierungen der System-UI, besserem Multitasking, und verbesserte Kompatibilitätsmodi. Achten Sie beim Testen darauf, dass Ihre Apps auf Tablets und anderen Geräten mit großem Bildschirm optimal dargestellt werden.

Weitere Informationen zu den Neuerungen und zu den zu testenden Inhalten finden Sie in der Unterstützung für Tablets und große Bildschirme Seite.

Grafik

Programmierbare Shader

<ph type="x-smartling-placeholder">
</ph>
Ein animierter AGSL-Shader, nach Vorlage dieses GLSL-Shader:

Ab Android 13 unterstützt das System programmierbare RuntimeShader-Objekte mit Verhalten, das mit der Graphics Shading Language von Android definiert wird (AGSL) AGSL-Aktien mit GLSL, funktioniert aber innerhalb der Android-Rendering-Engine, Passen Sie das Bild im Canvas von Android an und filtern Sie Inhalte in der Ansicht. Android verwendet diese Shader intern, um Ripple-Effekte, Weichzeichnen, und überscrollen. Mit Android 13 und höher kannst du ähnliche erweiterte Effekte für dein

Verbesserungen für Choreografen

Android 13 führt öffentliche API-Methoden ein, Choreographer und ASurfaceControl, die mehr Informationen über mögliche Frame-Timelinen und mehr Kontext bieten, SurfaceFlinger Lebenszyklus der Frames. Ähnlich wie zuvor können Apps einen Rückruf posten Choreographer und es werden Frame-Zeitachseninformationen empfangen. Android 13 (API) Ebene 33), Choreographer gibt mehrere mögliche Präsentationszeiten und die entsprechenden Frame-Fristen. Apps können selbst entscheiden, wann anschließend SurfaceFlinger benachrichtigen Ihrer Wahl. SurfaceFlinger versucht dann nicht, Transaktionen anzuwenden oder bis zum gewünschten Präsentationszeitpunkt zwischengespeichert wird.

<ph type="x-smartling-placeholder">
</ph>
Wenn in deiner App die neuen Methoden Choreographer und SurfaceControl verwendet werden, können Sie den Frame-Lebenszyklus der App in einem Perfetto-Trace ansehen.

Kamera

HDR-Videoaufnahme

Ab Android 13 werden die Camera2-APIs unterstützen HDR-Videoaufnahmen (High Dynamic Range), mit denen Sie sich eine Vorschau der und nimm HDR-Videos mit deiner Kamera auf. Im Vergleich zu standardmäßigen dynamischen Creatives Range (SDR), HDR bietet einen größeren Farbraum und erhöht den Dynamikumfang der Leuchtdichtekomponente (von den aktuellen 100 cd/m2 bis 1.000 cd/m2) Dadurch wird die Videoqualität dem echten Leben besser entsprechen, mit einer Farben, hellere Spitzlichter und dunklere Schatten.

Weitere Informationen zur HDR-Videoaufnahme findest du in der Dokumentation zur Aufnahme von HDR-Videos

Medien

Spatial Audio

Spatial Audio ist ein immersives Audioerlebnis, bei dem Medieninhalte klingen für Ihre Nutzenden realistischer machen. Weitere Informationen zu Spatial Audio finden Sie weitere Informationen zur Integration dieser Funktion.

Antizipatorisches Audio-Routing

Damit Medien-Apps besser erkennen können, wie ihr Audio weitergeleitet wird, hat Android 13 werden Audioroute APIs in der Klasse AudioManager. Die getAudioDevicesForAttributes() Mit der API kannst du eine Liste der Geräte abrufen, die für die Wiedergabe des angegebene Audiodatei und die getDirectProfilesForAttributes() Mit der API können Sie ermitteln, ob Ihr Audiostream direkt abgespielt werden kann. Verwenden Sie APIs, um die beste Lösung AudioFormat zur Verwendung für Audio Titel.

Bedienungshilfen

Audiobeschreibung

Mit Android 13 (API-Level 33) wird eine neue systemweite Barrierefreiheitseinstellung eingeführt mit der Nutzer Audiobeschreibungen in allen Apps aktivieren können. Ein Audio Eine Beschreibung ist ein zusätzlicher Sprecher, bei dem ein Sprecher spricht durch die Präsentation. Dabei beschreiben Sie, was während mit natürlichen Pausen. Apps können den Präferenzen von Nutzern für Audiobeschreibungstitel folgen, indem sie Abfrage mit isAudioDescriptionRequested(), Dies wird 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 einen Listener für AccessbilityManager:

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 die OpenJDK 11 LTS-Version mit Bibliotheksupdates und der Sprache Java 11 Support für Anwendungs- und Plattformentwickler. Die Kernbibliothek ändert sich die mit Android 13 eingeführt wurden, über eine Google Play-Systemupdate für das ART-Mainline-Modul.

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

  • Unterstützung des Keywords var für lokale Variablen und als Parameter-Lambdas.
  • Neue Methoden in der String-Klasse:

    • isBlank()
    • lines()
    • repeat()
    • strip()
    • stripLeading()
    • stripTrailing()
  • Unterstützung für Collection.toArray(IntFunction) zur einfacheren Anpassung eines in 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.

  • NullReader, NullWriter, InputStream, OutputStream und transferTo() Reader-Funktion, die gelesene Zeichen in ein Writer-Objekt überträgt.

  • Es wurden Funktionen 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 Compiler-Unterstützung für java.lang.invoke.VarHandle.

  • Aktualisiert java.util.concurrent auf die OpenJDK 11 API, wobei VarHandle intern verwendet wird.

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