Aggiornamenti alle limitazioni relative all'interfaccia non SDK in Android 13

Android 13 include elenchi aggiornati di interfacce non SDK con restrizioni basate sulla collaborazione con gli sviluppatori Android e sui test interni più recenti. Ove possibile, ci assicuriamo che siano disponibili alternative pubbliche prima di limitare le interfacce non SDK.

Se la tua app non ha come target Android 13, alcune di queste modifiche potrebbero non interessarti immediatamente. Tuttavia, anche se al momento puoi utilizzare alcune interfacce non SDK (a seconda del livello API target della tua app ), l'utilizzo di qualsiasi metodo o campo non SDK comporta sempre un rischio elevato di interruzione dell'app.

Se non sai con certezza se la tua app utilizza interfacce non SDK, puoi testare la tua app per scoprirlo. Se la tua app si basa su interfacce non SDK, devi iniziare a pianificare una migrazione ad alternative SDK. Tuttavia, sappiamo che alcune app hanno casi d'uso validi per l'utilizzo di interfacce non SDK. Se non riesci a trovare un'alternativa all'utilizzo di un'interfaccia non SDK per una funzionalità della tua app, devi richiedere una nuova API pubblica.

Elenco delle modifiche per Android 13

Le modifiche apportate ad Android 13 rientrano nella seguente categoria:

Per un elenco completo di tutte le interfacce non SDK per Android 13, scarica il seguente file:

File: hiddenapi-flags.csv

Checksum SHA-256: 233a277aa8ac475b6df61bffd95665d86aac6eb2ad187b90bf42a98f5f2a11a3

Interfacce non SDK ora bloccate in Android 13

La seguente casella di codice elenca tutte le interfacce non SDK non supportate in Android 12 (livello API 31) che sono bloccate in Android 13 (livello API 33). Ciò significa che queste interfacce appartengono all'elenco max-target-s, quindi la tua app può utilizzare queste interfacce solo se ha come target Android 12 (livello API 31) o versioni precedenti.

Il nostro obiettivo è assicurarci che siano disponibili alternative pubbliche prima di limitare le interfacce non SDK e sappiamo che la tua app potrebbe avere un caso d'uso valido per l'utilizzo di queste interfacce. Se un'interfaccia utilizzata dalla tua app in una versione precedente è ora bloccata in Android 13, devi richiedere una nuova API pubblica per questa interfaccia.

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.