Android 11 uvaja spremembo, ki bo preprečila, da bi se aplikacije kamer tretjih oseb pojavile v dejanjih namena izbire slike/videoposnetka.
Posodobitev 1 (20. 8. 2020 ob 18:15 ET): Google je posodobil svojo dokumentacijo za razvijalce, da pojasni, zakaj se aplikacije za kamero drugih proizvajalcev v sistemu Android 11 ne morejo odzvati na implicitna dejanja namena slike/videoposnetka. Za več informacij se pomaknite na dno. Članek, kot je bil objavljen 19. avgusta 2020, je ohranjen spodaj.
Android 11 spreminja način interakcije aplikacij aplikacije za kamere drugih proizvajalcev v vaši napravi, kar bo preprečilo, da bi se pojavili v namenih za izbiranje slik/videoposnetkov. V starejših različicah Androida lahko aplikacija, če želi uporabnikom dovoliti zajem slike, izvaja fotografiranje znotraj aplikacije (z uporabo različnih Androidovih API-jev za kamero) ali pa lahko pošlje namen, ki ga lahko obravnava namenska aplikacija za kamero za zajem slike namesto tega. Če se aplikacija odloči za slednjo možnost, se uporabnikom starejših izdaj Android prikaže pogovorno okno za razjasnitev, da izberejo aplikacijo kamere po svoji izbiri za zajem slike. Pogovorno okno na splošno prikazuje vse aplikacije za kamero, nameščene v uporabnikovi napravi, vključno z aplikacijami za kamero tretjih oseb, če so napisane tako, da se odzivajo na določene namene. Vendar pa bo z Androidom 11 pogovorno okno vključevalo samo vnaprej nameščene osnovne aplikacije za kamero, razen če razvijalci posebej ciljajo na določene aplikacije za kamero tretjih oseb.
Sprememba dejansko pomeni, da bodo morali uporabniki v večini primerov ročno zagnati aplikacije za fotoaparate tretjih oseb, ko bodo želeli posneti fotografijo, zaradi česar bodo aplikacije za fotoaparate tretjih oseb manj priročne za uporabo. Prav tako bodo uporabniki krivili razvijalce aplikacij za kamere drugih proizvajalcev, ko bodo ugotovili, da njihove najljubše aplikacije za kamero ni več mogoče zagnati iz drugih aplikacij. Google izvaja to spremembo v sistemu Android 11 tako, da aplikacijam za kamere drugih proizvajalcev preprečuje, da bi se odzvale na naslednja dejanja namena:
android.media.action.VIDEO_CAPTURE
android.media.action.IMAGE_CAPTURE
android.media.action.IMAGE_CAPTURE_SECURE
Google pravi da je bila ta sprememba uvedena v sistemu Android 11 za zaščito zasebnosti in varnosti uporabnikov. Podjetje ne pojasnjuje, kako, vendar je verjetno, da so se nekatere zlonamerne aplikacije maskirale kot aplikacije za kamere, da bi dobile dostop do uporabnikovih fotografij. Vendar pa podjetje omenja rešitev za razvijalce, ki bo aplikacijam omogočila, da še vedno zaženejo aplikacije za kamere tretjih oseb. Rešitev v bistvu od razvijalcev zahteva, da pri pošiljanju namere ciljajo na določeno aplikacijo tretje osebe po lastni izbiri. Na primer, razvijalec aplikacije za optični bralnik dokumentov lahko pošlje izrecno namero za zagon Kamera Adobe Photoshop namesto pošiljanja implicitnega namena za odpiranje izbirnika kamere. Android 11 omogoča, da razvijalci ne morejo niti poizvedovati po seznamu aplikacij, ki se lahko odzovejo na 3 prej omenjene dejanja namena, kar pomeni, da bo moral razvijalec vnaprej vedeti, katere aplikacije za kamero tretjih oseb želi podporo.
Vir: CommonsWare, Razvijalci za Android
prek: Reddit
Hvala starejšemu članu XDA AndroidDeveloperLB za napitnino!
Posodobitev 1: Google pravi, da je ta sprememba namenjena ohranjanju zasebnosti
Google je posodobil svojo stran s spremembami vedenja za Android 11 z novimi informacijami o "dejanja medijske namere zahtevajo sistemsko privzeto kamero" razdelek (prek The Verge). Google pojasnjuje, da je sprememba "namenjena zagotavljanju pravilne obdelave metapodatkov o lokaciji EXIF na podlagi dovoljenj za lokacijo, opredeljenih v Google v bistvu skrbi, da aplikacije, ki še nimajo izrecnega dostopa do lokacije, prisilijo uporabnike, da odprejo aplikacije za kamero, imajo dobil dostop do lokacije, in ker lahko nastala fotografija, ki je posredovana aplikaciji, vsebuje lokacijo EXIF metapodatkov, lahko aplikacija, ki kliče, obide zahtevo po dostopu do lokacije tako, da prebere podatke o lokaciji iz fotografija. Če aplikacija poskuša to storiti v sistemu Android 11, bo morala to prijaviti ACCESS_MEDIA_LOCATION
tako dobro, kot ACCESS_COARSE_LOCATION
oz ACCESS_FINE_LOCATION
dovoljenja za branje metapodatkov lokacije EXIF. (Opomba, Google je odpravil še eno vrzel v dostopu do lokacije v sistemu Android 10 tako, da zahtevajo, da aplikacije zahtevajo ACCESS_MEDIA_LOCATION
dovoljenje, če aplikacija poskuša pridobiti neredigirane metapodatke EXIF iz fotografij.)
Medtem ko bo ta sprememba vedenja vplivala na zmožnost aplikacij, da zaženejo uporabniško določeno privzeto aplikacijo kamere, zaradi tega, kako stara in pogosto uporabljena je 3. zgoraj omenjena dejanja namena so, Google ugotavlja, da sprememba ne vpliva na vsa dejanja namena, ki lahko zaženejo uporabniško določeno privzeto aplikacijo kamere, kot kot: android.provider.MediaStore.INTENT_ACTION_STILL_IMAGE_CAMERA
, android.provider.MediaStore.INTENT_ACTION_STILL_IMAGE_CAMERA_SECURE
, oz android.provider.MediaStore.INTENT_ACTION_VIDEO_CAMERA
. Ti nameni pa nimajo istega namena, saj zaženejo samo privzeto aplikacijo kamere, namesto da bi omogočili pošiljanje slike nazaj aplikaciji, ki kliče.