Android 11 ha un cestino nascosto per foto e video cestinati

In Android 11, le app possono suggerire di spostare foto e video eliminati in un cestino nascosto. Ciò mantiene temporaneamente gli elementi cestinati sul dispositivo.

Google sta tentando di frenare la situazione di archiviazione delle app fuori controllo con "Scoped Storage". L'archiviazione con ambito è stata introdotta in Android 10 ma da allora è stato modificato più volte dal suo debutto a causa dell'impatto drammatico sull'accesso allo spazio di archiviazione per molti Android applicazioni. Google sta applicando lo Scoped Storage per le app destinate al livello API 30, che è l'ultimo livello API che coincide con Android 11.

Piuttosto che provarci spiegare nuovamente l'archiviazione con ambito, ecco un grafico di Google "Tutto ciò che riguarda la privacy in Android 11" discorso che riassume il modo in cui l'archiviazione con ambito influenzerà l'accesso allo spazio di archiviazione per le app in Android 11.

Fonte: Google

Uno dei cambiamenti più interessanti nell'accesso allo storage che finora è passato inosservato è l'introduzione di un nuovo meccanismo di "cestinazione". Questa funzionalità è descritta in dettaglio nella sezione "

Accesso allo spazio di archiviazione con Android 11" video. In sostanza, le app che utilizzano il file API MediaStore può cestinare un file invece di eliminarlo per dare all'utente la possibilità di recuperare il file in un secondo momento. Google paragona questa funzionalità al Cestino dei PC, tranne per il fatto che il cestino di Android è nascosto per impostazione predefinita. Google afferma tuttavia che le app con accesso in modifica ai file cestinati o che richiedono il consenso dell'utente possono visualizzare elementi dal cestino. Gli elementi cestinati vengono automaticamente eliminati da Android dopo 30 giorni.

Android 11 richiede inoltre che le app ottengano il consenso di un utente prima di modificare file multimediali di cui l'app non è proprietaria. Un'altra nuova funzionalità aggiunta sono i "preferiti", che consentono alle app multimediali di aggiungere un file "preferito" status agli elementi multimediali designati in modo che altre app multimediali sappiano che l'utente visualizza questi elementi come importante. Ad esempio, se l'utente contrassegna come Speciale un elemento in un'app della Galleria, altre app multimediali possono vedere che questo elemento è stato aggiunto ai preferiti.

Sebbene il discorso di Google non mostri un esempio del nuovo concetto di spazzatura di MediaStore, l'API è disponibile sin dalla prima Android 11 Developer Preview. Lo sviluppatore Yuriy Mysochenko ha pubblicato un articolo su Medium a febbraio ha esaminato questa nuova API e ha dimostrato l'API in un'app di esempio come mostrato di seguito:

Nuova API MediaStore Trash in Android 11. Crediti: Yuri Mysochenko.

In questa demo, l'app chiedeva all'utente se desiderava spostare una foto nel cestino, eliminando temporaneamente la foto dalla galleria. Dopo 7 giorni, la foto verrà eliminata definitivamente dall'archivio. La googler Roxanna Aliabadi afferma che il sistema operativo memorizza gli elementi cestinati per 30 giorni, quindi il limite di archiviazione di 7 giorni è stato probabilmente aumentato rispetto alla prima anteprima per sviluppatori.

Gli sviluppatori interessati all'implementazione di questa API possono consultare subito la documentazione sul sito Web degli sviluppatori Android. Le app multimediali possono creare un PendingIntent chiamato createTrashRequest per richiedere all'utente di eliminare un elemento nel cestino, aggiungendo quindi il flag È_CESTATO indicando che un elemento multimediale è stato eliminato. Gli elementi cestinati vengono conservati dal sistema operativo fino al DATA_SCADENZA, dopodiché verranno eliminati definitivamente dall'archivio. Le app multimediali che eseguono query su MediaStore devono eseguire una query esplicita per gli elementi cestinati utilizzando QUERY_ARG_MATCH_TRASHED poiché gli elementi cestinati vengono filtrati dalle operazioni per impostazione predefinita.

Puoi (e dovresti) ascoltare questo discorso completo su Scoped Storage se la tua app si occupa dell'accesso allo spazio di archiviazione: