Android 14 låter dig begränsa vilka fotoappar som kan komma åt även om de inte använder fotoväljaren

Fotoväljaren var ett valfritt API för appar som ville komma åt ditt galleri i Android 13, men det börjar bli något obligatoriskt i Android 14.

En av höjdpunkterna i Android 13 är Photo Picker, en ny systemkomponent som låter användare välja vilka foton och videor som ska ge en app tillgång till. Appar behöver inte begära några behörigheter för att få tillgång till objekt som användaren väljer via fotoväljaren, vilket gör det till ett integritetsbevarande sätt att dela foton och videor med appar. Systemfilväljaren som har funnits sedan Android 4.4 erbjuder mer funktionalitet än fotoväljaren, men dess användargränssnitt är daterat i jämförelse.

Fotoväljaren (och systemfilväljaren före den) skyddar din integritet genom att låta dig begränsa vilka foton och videor en app har åtkomst till. Tyvärr stöder många appar inte Fotoväljaren, även om en bakåtkompatibel version av den är tillgänglig för Android 4.4+. Appar måste specifikt anropa fotoväljaren med en avsikt, men många appar väljer att inte använda den av en eller annan anledning. Lyckligtvis kanske det inte spelar någon roll längre

Android 14, som testar ett sätt för användare att välja vilka foton och videor som appar kan komma åt via Fotoväljaren oavsett om dessa appar faktiskt använder API: et eller inte.

Många appar får åtkomst till mediafiler via mediabutiks API. Systemet indexerar filer efter deras typ, kallade mediabutikssamlingar, och upprätthåller en databas som appar kan fråga med hjälp av mediabutikens API. Appar som använder mediabutikens API behöver inte be om tillåtelse att läsa eller ändra filer som de äger, men de måste få tillåtelse av användaren för att komma åt filer som ägs av andra appar.

Från och med Android 10 måste appar som är inriktade på API-nivå 29 eller högre beviljas READ_EXTERNAL_STORAGE tillstånd av användaren innan de kunde använda mediabutikens API för att komma åt filer ägs av andra appar. I Android 13 delades READ_EXTERNAL_STORAGE-behörigheten upp i tre olika behörigheter (READ_MEDIA_AUDIO, READ_MEDIA_VIDEO och READ_MEDIA_IMAGES) som var och en ger en app som är inriktad på API-nivå 33 möjligheten att använda mediabutikens API för att komma åt ljud-, video- respektive bildfiler som ägs av andra appar.

Android 14 ändrar medieåtkomstbehörigheter igen genom att kombinera READ_MEDIA_VIDEO, READ_MEDIA_IMAGES och ACCESS_MEDIA_LOCATION till en ny behörighet som heter READ_MEDIA_VISUAL_USER_SELECTED. Denna behörighet tillåter en app som är inriktad på API-nivå 34 att "läsa användarvalda bild- och videofiler från delad lagring", enligt dess beskrivning. Android 14 kan dock retroaktivt tillämpa detta nya beteende på befintliga appar som är inriktade på API-nivå 33 (dvs. Android 13) och begär READ_MEDIA_VIDEO eller READ_MEDIA_IMAGES.

När en app som är inriktad på API-nivå 33 utlöser dialogrutan för körtidsbehörighet för att be användaren att ge dem READ_MEDIA_VIDEO eller READ_MEDIA_IMAGES (eller båda), kan Android 14 infoga en ny post i behörighetsdialogruta som säger "Välj foton." Om du trycker på den här posten startar en ny version av fotoväljaren som låter användaren välja vilka foton eller videor de vill ge appen åtkomst till. Appen har därefter tillgång till endast de mediaobjekt som användaren specifikt valt, om inte användaren väljer det utöka åtkomsten till ytterligare medieobjekt eller ge appen åtkomst till hela mediabutikens samlingar för bilder och videoklipp.

Den här posten i behörighetsdialogrutan visas inte som standard i Android 14 DP1, eftersom dess synlighet är gated av en utvecklarflagga som jag var tvungen att växla. Om den här funktionen kommer att släppas kommer det dock att vara en stor vinst för integriteten, eftersom det betyder att användare alltid kommer att ha möjlighet att bestämma vilka foton eller videor en app ska ha tillgång till.

Alldeles för få appar använder Photo Picker API som det är, vilket får Google att experimentera med avlyssna ett befintligt uppsåt som appar använder för att starta systemfilväljaren så att de istället startar fotoväljaren. Medan fotoväljaren har några brister, som att inte visa filer från molnmedialeverantörer ännu (kanske kommer det snart med tilläggs-SDK version 5!) och visar bara vissa album på enheten är den bättre än den gamla systemfilväljaren och är definitivt att föredra framför att alla appar har tillgång till alla foton och videoklipp i galleriet.

Utvecklare som är intresserade av att implementera Photo Picker API bör uppgradera till den senaste versionen av Jetpack Activity-biblioteket, som hanterar anrop av den bakåtkompatibla versionen som tillhandahålls via Google Play Services på Android 4.4-Android 10 eller den version som tillhandahålls av ramverket som tillhandahålls via MediaProvider Mainline-modulen.