[Aktualizácia: Ďalšie podrobnosti] Android 11 blokuje zobrazovanie aplikácií pre fotoaparáty tretích strán v zámeroch na výber obrázkov/videí

Android 11 implementuje zmenu, ktorá zabráni tomu, aby sa aplikácie fotoaparátu tretích strán zobrazovali v akciách zámeru výberu obrázkov/videa.

Aktualizácia 1 (20. 8. 2020 o 18:15 ET): Spoločnosť Google aktualizovala svoju dokumentáciu pre vývojárov, aby vysvetlila, prečo aplikácie fotoaparátov tretích strán v systéme Android 11 nedokážu reagovať na implicitné akcie so zámerom obrázka/videa. Ak chcete získať ďalšie informácie, prejdite nadol. Článok zverejnený 19. augusta 2020 je zachovaný nižšie.

Android 11 mení spôsob interakcie aplikácií aplikácie fotoaparátu tretích strán na vašom zariadení, čo zabráni ich zobrazeniu v zámeroch na výber obrázka/videa. V starších verziách systému Android, ak chce aplikácia používateľom umožniť zachytiť obrázok, môže buď implementovať fotografovanie v rámci aplikácie (pomocou rôznych rozhraní API pre fotoaparáty v systéme Android) alebo môže odoslať zámer, ktorý dokáže spracovať špeciálna aplikácia pre fotoaparát na zachytenie snímky namiesto toho. Ak sa aplikácia rozhodne pre druhú možnosť, používateľom starších verzií systému Android sa zobrazí dialógové okno, v ktorom si môžu vybrať aplikáciu fotoaparátu na zachytenie obrázka. Dialógové okno vo všeobecnosti zobrazuje všetky aplikácie fotoaparátu nainštalované v zariadení používateľa vrátane aplikácií fotoaparátu tretích strán, pokiaľ sú napísané tak, aby reagovali na určité zámery. V systéme Android 11 však dialógové okno bude obsahovať iba predinštalované aplikácie pre fotoaparáty, pokiaľ sa vývojári konkrétne nezamerajú na niektoré aplikácie fotoaparátu tretích strán.

Táto zmena v skutočnosti znamená, že vo väčšine prípadov budú musieť používatelia manuálne spustiť aplikácie pre fotoaparáty tretích strán, keď chcú nasnímať fotografiu, takže používanie aplikácií tretích strán bude menej pohodlné. Používatelia budú tiež obviňovať vývojárov aplikácií pre fotoaparáty tretích strán, keď používateľ zistí, že ich obľúbenú aplikáciu pre fotoaparát už nemožno spustiť z iných aplikácií. Google implementuje túto zmenu v systéme Android 11 tak, že bráni aplikáciám fotoaparátu tretích strán reagovať na nasledujúce zámerné akcie:

  • android.media.action.VIDEO_CAPTURE
  • android.media.action.IMAGE_CAPTURE
  • android.media.action.IMAGE_CAPTURE_SECURE

Google hovorí že táto zmena bola zavedená v systéme Android 11 s cieľom chrániť súkromie a bezpečnosť používateľov. Spoločnosť nešpecifikuje ako, ale je pravdepodobné, že niektoré škodlivé aplikácie sa maskovali ako aplikácie fotoaparátu, aby získali prístup k fotografiám používateľa. Spoločnosť však spomína riešenie pre vývojárov, ktoré aplikáciám umožní stále spúšťať aplikácie fotoaparátu tretích strán. Toto riešenie v podstate vyžaduje, aby vývojári pri odosielaní zámeru zacielili na konkrétnu aplikáciu tretej strany podľa vlastného výberu. Napríklad vývojár aplikácie skenera dokumentov môže poslať explicitný zámer na spustenie Fotoaparát Adobe Photoshop namiesto odosielania implicitného zámeru otvoriť výber kamery. Vďaka systému Android 11 sa vývojári nemôžu pýtať ani na zoznam aplikácií, ktoré môžu reagovať na vyššie uvedené 3 zámerné akcie, čo znamená, že vývojár bude musieť vopred vedieť, ktoré aplikácie fotoaparátu tretích strán chcú podpora.

Zdroj: CommonsWare, Android vývojári

Cez: Reddit

Ďakujeme Senior Member XDA AndroidDeveloperLB za tip!

Aktualizácia 1: Google hovorí, že táto zmena je zameraná na zachovanie súkromia

Google aktualizoval svoju stránku so zmenami správania v systéme Android 11 o nové informácie o „akcie mediálneho zámeru vyžadujú predvolenú kameru systémusekcia “ (cez The Verge). Táto zmena, vysvetľuje Google, je „navrhnutá tak, aby zabezpečila, že metaúdaje o polohe EXIF ​​budú správne spracované na základe povolení na umiestnenie definovaných v rámci aplikácia odosiela zámer." Google sa v zásade obáva, že aplikácie, ktorým ešte nebol udelený explicitný prístup k polohe, nútia používateľov otvárať aplikácie fotoaparátu, ktoré mať má udelený prístup k polohe a keďže výsledná fotografia odoslaná do aplikácie môže obsahovať polohu EXIF metaúdaje, potom môže volajúca aplikácia obísť žiadosť o prístup k polohe prečítaním údajov o polohe z fotografiu. Ak sa to aplikácia pokúsi urobiť v systéme Android 11, bude to musieť deklarovať ACCESS_MEDIA_LOCATION ako aj ACCESS_COARSE_LOCATION alebo ACCESS_FINE_LOCATION povolenia na čítanie metadát o polohe EXIF. (Za zmienku, Google uzavrel ďalšiu medzeru v prístupe k polohe v systéme Android 10 tým, že aplikácie vyžadujú žiadosť ACCESS_MEDIA_LOCATION povolenie, ak sa aplikácia pokúsi získať nezreagované metadáta EXIF ​​z fotografií.)

Aj keď táto zmena správania ovplyvní schopnosť aplikácií spúšťať používateľom definovanú predvolenú aplikáciu fotoaparátu, pretože je stará a často používaná sú vyššie uvedené akcie zámerov, Google poznamenáva, že zmena neovplyvní všetky akcie zámerov, ktoré môžu spustiť používateľom definovanú predvolenú aplikáciu fotoaparátu, napr. ako: android.provider.MediaStore.INTENT_ACTION_STILL_IMAGE_CAMERA, android.provider.MediaStore.INTENT_ACTION_STILL_IMAGE_CAMERA_SECURE, alebo android.provider.MediaStore.INTENT_ACTION_VIDEO_CAMERA. Tieto zámery však neslúžia na rovnaký účel, pretože spúšťajú iba predvolenú aplikáciu fotoaparátu a neumožňujú odoslanie obrázka späť do volajúcej aplikácie.