Updates zu Einschränkungen für Nicht-SDK-Schnittstellen in Android 13

Android 13 enthält aktualisierte Listen mit eingeschränktem Nicht-SDK Benutzeroberflächen basierend auf der Zusammenarbeit mit Android-Entwicklern internen Tests. Wann immer möglich, achten wir darauf, dass öffentliche Alternativen bevor wir Nicht-SDK-Schnittstellen einschränken.

Wenn deine App nicht auf Android 13 ausgerichtet ist, gibt es einige dieser Änderungen nicht sofort betreffen. Obwohl Sie derzeit einige Nicht-SDK-Schnittstellen (abhängig von der Ziel-API Ihrer App Level) die Verwendung einer Nicht-SDK-Methode oder eines Nicht-SDK-Felds birgt immer ein hohes Risiko, dass Ihre

Wenn Sie sich nicht sicher sind, ob Ihre App Nicht-SDK-Schnittstellen verwendet, können Sie Ihre App um es herauszufinden. Wenn Ihre App Nicht-SDK-Schnittstellen benötigt, sollten Sie mit der Planung eine Migration zu SDK-Alternativen. Dennoch ist uns bewusst, dass einige Apps Anwendungsfälle für die Verwendung von Nicht-SDK-Schnittstellen. Wenn Sie keine Alternative finden für eine Funktion in Ihrer App eine Nicht-SDK-Schnittstelle verwenden, sollten Sie eine neue öffentliche API.

Änderungen für Android 13 auflisten

Die Änderungen in Android 13 lassen sich in die folgende Kategorie einteilen:

  • Nicht-SDK-Schnittstellen, die unter Android 12 (API-Level 31) nicht unterstützt wurden und die sind in Android 13 blockiert.

Eine vollständige Liste aller Nicht-SDK-Schnittstellen für Android 13 finden Sie in der folgende Datei:

Datei: hiddenapi-flags.csv

SHA-256-Prüfsumme: 233a277aa8ac475b6df61bffd95665d86aac6eb2ad187b90bf42a98f5f2a11a3

Nicht-SDK-Schnittstellen, die in Android 13 jetzt blockiert sind

Im folgenden Codefeld sind alle Nicht-SDK-Schnittstellen aufgeführt, die nicht unterstützt wurden in Android 12 (API-Level 31), die in Android 13 (API-Level 33) blockiert sind. Das Diese Schnittstellen gehören zur max-target-s-Liste. Ihre Anwendung kann also nur diese Schnittstellen, wenn sie auf Android 12 (API-Level 31) oder niedriger ausgerichtet sind.

Wir möchten dafür sorgen, dass öffentliche Alternativen verfügbar sind, Nicht-SDK-Schnittstellen einschränken. Uns ist bewusst, dass Ihre App möglicherweise eine gültige für die Verwendung dieser Schnittstellen. Wenn eine Oberfläche, die Ihre App verwendet, in Android 13 blockiert, sollten Sie eine neue öffentliche API für diese Schnittstelle.

Landroid/app/Activity;->setDisablePreviewScreenshots(Z)V # Use setRecentsScreenshotEnabled() instead.
Landroid/os/PowerManager;->isLightDeviceIdleMode()Z # Use isDeviceLightIdleMode() instead.
Landroid/os/Process;->setArgV0(Ljava/lang/String;)V # In general, do not try to change the process name. If you must change the process name (for instance, for debugging), you can use pthread_setname_np() instead, though be aware that doing this might confuse the system.
Landroid/view/accessibility/AccessibilityInteractionClient;->clearCache(I)V # Use android.accessibilityservice.AccessibilityService#clearCache() instead.