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

Android 13 enthält aktualisierte Listen eingeschränkter Nicht-SDK-Schnittstellen, die auf der Zusammenarbeit mit Android-Entwicklern und den neuesten internen Tests basieren. Wir sorgen nach Möglichkeit dafür, dass öffentliche Alternativen verfügbar sind, bevor wir Nicht-SDK-Schnittstellen einschränken.

Wenn Ihre App nicht auf Android 13 ausgerichtet ist, wirken sich einige dieser Änderungen möglicherweise nicht sofort auf Sie aus. Derzeit können Sie zwar einige Nicht-SDK-Schnittstellen verwenden (abhängig vom Ziel-API-Level Ihrer App), die Verwendung einer Nicht-SDK-Methode oder eines Nicht-SDK-Felds birgt jedoch immer ein hohes Risiko, dass Ihre App nicht mehr funktioniert.

Wenn Sie sich nicht sicher sind, ob Ihre App Nicht-SDK-Schnittstellen verwendet, können Sie Ihre App testen, um das herauszufinden. Wenn Ihre App auf Nicht-SDK-Schnittstellen basiert, sollten Sie mit der Planung einer Migration zu SDK-Alternativen beginnen. Wir verstehen jedoch, dass einige Apps gültige Anwendungsfälle für die Verwendung von Nicht-SDK-Schnittstellen haben. Wenn Sie keine Alternative zur Verwendung einer Nicht-SDK-Schnittstelle für eine Funktion in Ihrer App finden, sollten Sie eine neue öffentliche API anfordern.

Änderungen für Android 13

Die Änderungen an der Liste in Android 13 fallen in die folgende Kategorie:

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

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

Datei: hiddenapi-flags.csv

SHA-256-Prüfsumme: 233a277aa8ac475b6df61bffd95665d86aac6eb2ad187b90bf42a98f5f2a11a3

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

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

Unser Ziel ist es, dafür zu sorgen, dass öffentliche Alternativen verfügbar sind, bevor wir Nicht-SDK-Schnittstellen einschränken. Wir wissen, dass Ihre App möglicherweise einen gültigen Anwendungsfall für die Verwendung dieser Schnittstellen hat. Wenn eine Schnittstelle, die Ihre App in einer früheren Version verwendet hat, jetzt in Android 13 blockiert ist, sollten Sie eine neue öffentliche API für diese Schnittstelle anfordern.

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.