Aggiornamenti alle limitazioni relative alle interfacce non SDK in Android 13

Android 13 include elenchi aggiornati di elementi non SDK soggetti a restrizioni basate sulla collaborazione con gli sviluppatori Android e le applicazioni per i test interni. Quando possibile, facciamo in modo che le alternative pubbliche siano disponibili prima che vengano limitate le interfacce non SDK.

Se la tua app non ha come target Android 13, alcune di queste modifiche potrebbero non riguardarti immediatamente. Tuttavia, sebbene al momento tu possa utilizzare interfacce non SDK (in base all'API target dell'app ), l'utilizzo di qualsiasi metodo o campo non SDK comporta sempre un rischio elevato di danneggiare dell'app.

Se non hai la certezza che la tua app utilizzi interfacce non SDK, puoi testare app per scoprirlo. Se la tua app si basa su interfacce non SDK, dovresti iniziare a pianificare una migrazione alle alternative dell'SDK. Tuttavia, sappiamo che alcune app hanno e validi casi d'uso 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.

Modifiche all'elenco 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 bloccati in Android 13 (livello API 33). Questo è che queste interfacce appartengono all'elenco max-target-s, quindi la tua app può usare solo queste interfacce se hanno 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 indirizzo caso d'uso per l'uso di queste interfacce. Se un'interfaccia utilizzata dalla tua app in una versione precedente è ora bloccata in Android 13, pertanto devi richiedere un nuovo dell'API 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.