Photo Picker bylo volitelné rozhraní API pro aplikace, které chtěly přistupovat k vaší galerii v systému Android 13, ale v systému Android 14 se stává poněkud povinným.
Jednou z nejdůležitějších funkcí Androidu 13 je Photo Picker, nová systémová komponenta, která uživatelům umožňuje vybrat, ke kterým fotografiím a videím má mít aplikace přístup. Aplikace nemusí žádat o žádná oprávnění, aby získaly přístup k položkám, které uživatel vybere prostřednictvím nástroje Photo Picker, což z něj činí způsob, jak sdílet fotografie a videa s aplikacemi, a chránit tak soukromí. Nástroj pro výběr systémových souborů, který existuje od Androidu 4.4, nabízí více funkcí než nástroj pro výběr fotografií, ale jeho uživatelské rozhraní je ve srovnání s ním zastaralé.
Nástroj Photo Picker (a před ním nástroj pro výběr systémových souborů) chrání vaše soukromí tím, že vám umožňuje omezit, k jakým fotografiím a videím má aplikace přístup. Bohužel, mnoho aplikací nepodporuje Photo Picker, i když je k dispozici jeho zpětně kompatibilní verze pro Android 4.4+. Aplikace musí specificky vyvolat nástroj Photo Picker pomocí záměru, ale mnoho aplikací se ho z toho či onoho důvodu rozhodne nepoužít. Naštěstí na tom už nezáleží
Android 14, která testuje způsob, jak si uživatelé mohou vybrat, ke kterým aplikacím pro fotografie a videa budou mít přístup prostřednictvím nástroje Photo Picker bez ohledu na to, zda tyto aplikace skutečně používají rozhraní API.Mnoho aplikací přistupuje k mediálním souborům prostřednictvím API úložiště médií. Systém indexuje soubory podle jejich typu, nazývané kolekce úložiště médií, a udržuje databázi, kterou mohou aplikace dotazovat pomocí rozhraní API úložiště médií. Aplikace, které používají rozhraní API obchodu s médii, nemusejí žádat o povolení ke čtení nebo úpravě souborů, které vlastní, ale musí jim uživatel udělit oprávnění k přístupu k souborům vlastněným jinými aplikacemi.
Počínaje systémem Android 10 musely být aplikace, které cílí na úroveň API 29 nebo vyšší, uděleny Oprávnění uživatele READ_EXTERNAL_STORAGE před tím, než bude moci používat rozhraní API úložiště médií k přístupu k souborům ve vlastnictví jiných aplikací. V systému Android 13 bylo oprávnění READ_EXTERNAL_STORAGE rozděleno do tří různých oprávnění (READ_MEDIA_AUDIO, READ_MEDIA_VIDEO a READ_MEDIA_IMAGES), která každý uděluje aplikaci cílení na rozhraní API úrovně 33 možnost používat rozhraní API obchodu s médii pro přístup k audio, video a obrázkovým souborům, které jsou vlastněny jinými aplikace.
Android 14 znovu mění oprávnění pro přístup k médiím tím, že kombinuje READ_MEDIA_VIDEO, READ_MEDIA_IMAGES a ACCESS_MEDIA_LOCATION do nového oprávnění s názvem READ_MEDIA_VISUAL_USER_SELECTED. Toto oprávnění umožňuje aplikaci cílení na API úrovně 34 „číst uživatelem vybrané soubory obrázků a videí ze sdíleného úložiště“, jak je uvedeno v popisu. Android 14 však může toto nové chování zpětně aplikovat na stávající aplikace, které cílí na úroveň API 33 (tj. Android 13) a požádejte o READ_MEDIA_VIDEO nebo READ_MEDIA_IMAGES.
Když aplikace, která cílí na úroveň API 33, spustí dialogové okno oprávnění k běhu a požádá uživatele, aby jim udělil READ_MEDIA_VIDEO nebo READ_MEDIA_IMAGES (nebo obojí), Android 14 může vložit novou položku do dialogové okno oprávnění s nápisem „Vybrat fotografie“. Klepnutím na tuto položku spustíte novou verzi nástroje pro výběr fotografií, která uživateli umožňuje vybrat, ke kterým fotografiím nebo videím chce aplikaci udělit přístup na. Aplikace má následně přístup pouze k těm mediálním položkám, které uživatel konkrétně vybral, pokud se tak uživatel nerozhodne rozšířit přístup k dalším mediálním položkám nebo udělit aplikaci přístup k celým sbírkám úložiště médií pro obrázky a videa.
Tato položka v dialogovém okně oprávnění se ve výchozím nastavení v systému Android 14 DP1 nezobrazuje, protože její viditelnost je omezena příznakem vývojáře, který jsem musel přepnout. Pokud se však tato funkce uvolní, bude to velká výhra pro ochranu soukromí, protože to znamená, že uživatelé budou mít vždy možnost rozhodnout, ke kterým fotografiím nebo videím by měla mít aplikace přístup.
Příliš málo aplikací používá rozhraní Photo Picker API tak, jak je, což nutí Google experimentovat zachycení existujícího záměru které aplikace používají ke spuštění nástroje pro výběr systémových souborů, takže místo toho spustí nástroj pro výběr fotografií. I když má Photo Picker některé nedostatky, například zatím nezobrazuje soubory od poskytovatelů cloudových médií (možná to brzy bude s rozšíření SDK verze 5!) a zobrazují pouze určitá alba na zařízení je lepší než starý výběr systémových souborů a rozhodně je lepší než každá aplikace, která má přístup ke každé fotografii a videu v galerii.
Vývojáři, kteří mají zájem o implementaci rozhraní Photo Picker API, by měli upgradovat na nejnovější verzi knihovna Jetpack Activity, která zpracovává volání zpětně kompatibilní verze poskytované prostřednictvím Služeb Google Play v systému Android 4.4-Android 10 nebo verze poskytované prostřednictvím rozhraní modul MediaProvider Mainline.