I stället för att försöka förklara Scoped Storage igen, här är en grafik från Googles “All things privacy in Android 11” -prat som sammanfattar hur Scoped Storage kommer att påverka lagringstillträde för appar i Android 11.
En av de mer intressanta förändringarna av lagringsåtkomst som hittills har flugit under radarn är införandet av en ny ”skräp” -mekanism. Den här funktionen beskrivs i Googles “Lagringsåtkomst med Android 11” -video. I huvudsak kan appar som använder MediaStore API slänga en fil istället för att ta bort den för att ge användaren en chans att återställa filen senare. Google liknar den här funktionen med papperskorgen på datorer förutom att Android: s papperskorg är dold som standard. Google säger att appar med redigeringsåtkomst till papperskorgar eller som begär användarens samtycke kan visa objekt från papperskorgen. Objekt som lagras i papperskorgen raderas automatiskt av Android efter 30 dagar.
Android 11 kräver också att appar får samtycke från en användare innan de ändrar mediefiler som appen inte äger. En annan ny funktion som har lagts till är “favoriter”, som gör det möjligt för medieappar att lägga till en “favorit” -filstatus till angivna medieobjekt så att andra mediaprogram vet att användaren ser dessa objekt som viktiga. Till exempel, om användaren stjärnmärker ett objekt i en galleriapp, kan andra mediaprogram se att det här objektet har blivit favorit.
Även om Googles samtal inte visar ett exempel på MediaStores nya papperskorgskoncept, har API: et varit tillgängligt sedan den första Android 11 Developer Preview. Utvecklaren Yuriy Mysochenko publicerade en artikel om Medium tillbaka i februari som går över detta nya API, och han demonstrerade API: et i en exempelapp enligt nedan:
I den här demon frågade appen användaren om de ville flytta ett foto till papperskorgen som tillfälligt skulle radera fotot från galleriet. Efter sju dagar raderades fotot permanent från lagret. Googler Roxanna Aliabadi nämner att operativsystemet lagrar papperskorgen i 30 dagar, så lagringsgränsen på sju dagar har sannolikt ökat sedan den första förhandsgranskaren av utvecklare.
Utvecklare som är intresserade av att implementera detta API kan kolla in dokumentationen just nu på Android Developers webbplats. Medieappar kan skapa ett PendingIntent som heter createTrashRequest för att uppmana användaren att kasta ett objekt som sedan lägger till flaggan IS_TRASHED som indikerar att ett medieobjekt har lagts i papperskorgen. Papperskorgen lagras av operativsystemet fram till DATE_EXPIRES, varefter de raderas permanent från lagringen. Mediaprogram som söker i MediaStore måste uttryckligen söka efter papperskorgar som använder QUERY_ARG_MATCH_TRASHED, eftersom papperskorgar som standard filtreras bort från operationer.
Du kan (och borde) lyssna på detta fullständiga tal om Scoped Storage om din app handlar om lagringstillgång: