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

Android 13 include elenchi aggiornati di interfacce non SDK con limitazioni in base alla collaborazione con gli sviluppatori Android e ai più recenti test interni. Ove possibile, ci assicuriamo che siano disponibili alternative pubbliche prima di applicare limitazioni alle 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 interrompere la tua app.

Se non sai con certezza se la tua app utilizza interfacce non SDK, puoi testarla per scoprirlo. Se la tua app si basa su interfacce non SDK, devi iniziare a pianificare la migrazione a alternative SDK. Tuttavia, comprendiamo 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à nella tua app, devi richiedere una nuova API pubblica.

Elenco delle modifiche per Android 13

Le modifiche all'elenco in 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 che sono ora bloccate in Android 13

La seguente casella del codice elenca tutte le interfacce non SDK non supportate in Android 12 (livello API 31) che sono bloccate in Android 13 (livello API 33). ovvero, queste interfacce appartengono all'elenco max-target-s, pertanto la tua app può utilizzarle 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 siamo consapevoli che la tua app potrebbe avere un caso d'uso valido per l'utilizzo di queste interfacce. Se un'interfaccia che la tua app utilizza in una versione precedente ora è bloccata in Android 13, devi richiedere una nuova API pubblica per quell'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.