[Atjauninājums: sīkāka informācija] Android 11 bloķē trešo pušu kameru lietotņu parādīšanos attēlu/video atlases nolūkos

Operētājsistēmā Android 11 ir ieviestas izmaiņas, kas neļaus trešo pušu kameru lietotnēm parādīties attēlu/video atlases nolūka darbībās.

1. atjauninājums (20.08.2020 plkst. 18:15 ET): Google ir atjauninājusi izstrādātāju dokumentāciju, lai izskaidrotu, kāpēc trešo pušu kameru lietotnes operētājsistēmā Android 11 nespēj reaģēt uz netiešām attēla/video nolūka darbībām. Lai iegūtu papildinformāciju, ritiniet līdz apakšai. Tālāk ir saglabāts raksts, kas publicēts 2020. gada 19. augustā.

Android 11 maina veidu, kā lietotnes mijiedarbojas ar trešo pušu kameru lietotnes ierīcē, kas neļaus tiem parādīties attēlu/video atlases nolūkos. Vecākajās Android versijās, ja lietotne vēlas ļaut lietotājiem uzņemt attēlu, tā var uzņemt attēlus lietotnē (izmantojot dažādas Android kameru API), vai arī tā var nosūtīt nolūku, ko var apstrādāt īpaša kameras lietotne, lai uzņemtu attēlu vietā. Ja lietotne nolemj izvēlēties pēdējo opciju, vecāko Android laidienu lietotājiem tiek parādīts noskaidrošanas dialoglodziņš, lai atlasītu kameras lietotni pēc savas izvēles attēla uzņemšanai. Dialoglodziņā parasti tiek rādītas visas lietotāja ierīcē instalētās kameras lietotnes, tostarp trešās puses kameru lietotnes, ja vien tās ir rakstītas, lai reaģētu uz noteiktiem nolūkiem. Tomēr, izmantojot operētājsistēmu Android 11, dialoglodziņā tiks iekļautas tikai iepriekš instalētas kameras lietotnes, ja vien izstrādātāji nav īpaši atlasījuši noteiktas trešās puses kameru lietotnes.

Izmaiņas faktiski nozīmē, ka vairumā gadījumu lietotājiem būs manuāli jāpalaiž trešo pušu kameru lietotnes, kad viņi vēlas uzņemt fotoattēlu, tādējādi padarot trešo pušu kameru lietotņu lietošanu mazāk ērtu. Tas arī liks lietotājiem vainot trešo pušu kameru lietotņu izstrādātājus, kad lietotājs uzzinās, ka viņu iecienītāko kameras lietotni vairs nevar palaist no citām lietotnēm. Google ievieš šīs izmaiņas operētājsistēmā Android 11, neļaujot trešo pušu kameru lietotnēm reaģēt uz tālāk norādītajām nolūka darbībām.

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

Google saka ka šīs izmaiņas ir ieviestas operētājsistēmā Android 11, lai aizsargātu tās lietotāju privātumu un drošību. Uzņēmums sīkāk nepaskaidro, kā, taču, visticamāk, dažas ļaunprātīgas lietotnes ir maskējušās kā kameras lietotnes, lai piekļūtu lietotāja fotoattēliem. Tomēr uzņēmums min risinājumu izstrādātājiem, kas ļaus lietotnēm joprojām palaist trešo pušu kameru lietotnes. Risinājums būtībā paredz, ka izstrādātājiem, nosūtot nolūku, ir jāatlasa konkrēta trešās puses lietotne pēc savas izvēles. Piemēram, dokumentu skenera lietotnes izstrādātājs var nosūtīt skaidru nolūku palaist Adobe Photoshop kamera tā vietā, lai nosūtītu netiešu nolūku atvērt kameras atlasītāju. Android 11 padara to tā, ka izstrādātāji nevar pat jautāt to lietotņu sarakstam, kas var atbildēt uz 3 iepriekšminētajām. nolūka darbības, kas nozīmē, ka izstrādātājam būs iepriekš jāzina, kuras trešās puses kameru lietotnes viņi vēlas atbalsts.

Avots: CommonsWare, Android izstrādātāji

Caur: Reddit

Paldies XDA vecākajam loceklim AndroidDeveloperLB par dzeramnaudu!

1. atjauninājums: Google saka, ka šīs izmaiņas ir paredzētas privātuma saglabāšanai

Google ir atjauninājis savu Android 11 darbības izmaiņu lapu ar jaunu informāciju par "multivides nolūka darbībām ir nepieciešama sistēmas noklusējuma kamera" sadaļa (caur The Verge). Google skaidro, ka izmaiņas ir "izstrādātas, lai nodrošinātu, ka EXIF ​​atrašanās vietas metadati tiek pareizi apstrādāti, pamatojoties uz atrašanās vietas atļaujām, kas noteiktas lietotne nosūta nolūku." Būtībā Google pauž bažas, ka lietotnes, kurām vēl nav piešķirta skaidra piekļuve atrašanās vietai, liek lietotājiem atvērt kameras lietotnes, kas ir ir piešķirta piekļuve atrašanās vietai, un tā kā iegūtajā fotoattēlā, kas tiek nosūtīts uz lietotni, var būt ietverta EXIF atrašanās vieta metadatus, tad zvanīšanas lietotne var apiet atrašanās vietas piekļuves pieprasījumu, nolasot atrašanās vietas datus no foto. Ja lietotne mēģina to izdarīt operētājsistēmā Android 11, tai būs jādeklarē ACCESS_MEDIA_LOCATION kā arī ACCESS_COARSE_LOCATION vai ACCESS_FINE_LOCATION atļaujas, lai lasītu EXIF ​​atrašanās vietas metadatus. (Ņemiet vērā, Google novērsa vēl vienu atrašanās vietas piekļuves nepilnību operētājsistēmā Android 10, pieprasot lietotnēm pieprasīt ACCESS_MEDIA_LOCATION atļauja, ja lietotne mēģina no fotoattēliem izgūt nerediģētus EXIF ​​metadatus.)

Lai gan šīs uzvedības izmaiņas ietekmēs lietotņu spēju palaist lietotāja definētu noklusējuma kameras lietotni, ņemot vērā to, cik veca un bieži lietota 3 Iepriekš minētās nolūka darbības ir, Google atzīmē, ka izmaiņas neietekmē visas nolūka darbības, kas var palaist lietotāja definētu noklusējuma kameras lietotni, piemēram, kā: android.provider.MediaStore.INTENT_ACTION_STILL_IMAGE_CAMERA, android.provider.MediaStore.INTENT_ACTION_STILL_IMAGE_CAMERA_SECURE, vai android.provider.MediaStore.INTENT_ACTION_VIDEO_CAMERA. Šie nolūki tomēr nekalpo vienam un tam pašam mērķim, jo ​​tie palaiž tikai noklusējuma kameras lietotni, nevis ļauj nosūtīt attēlu atpakaļ uz zvanīšanas lietotni.