Aggiornamenti alle limitazioni relative alle interfacce non SDK in Android 13

Android 13 include elenchi aggiornati di interfacce non SDK limitate in base alla collaborazione con gli sviluppatori Android e ai test interni più recenti. Quando 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 metodi o campi non SDK comporta sempre un rischio elevato di danneggiare la tua app.

Se non hai la certezza che la tua app utilizzi interfacce non SDK, puoi testare l'app per scoprirlo. Se la tua app si basa su interfacce non SDK, devi iniziare a pianificare una migrazione alle alternative SDK. Ciononostante, siamo consapevoli 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.

Modifiche all'elenco per Android 13

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

Nella casella di codice seguente sono elencate tutte le interfacce non SDK che non erano supportate in Android 12 (livello API 31) e bloccate in Android 13 (livello API 33). In altre parole, queste interfacce appartengono all'elenco max-target-s, pertanto 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 comprendiamo 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 è 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.