Az Android 11 olyan változtatást hajt végre, amely megakadályozza, hogy harmadik féltől származó kameraalkalmazások megjelenjenek a kép-/videóválasztási szándékkal kapcsolatos műveletekben.
1. frissítés (2020.08.20., 18:15 ET): A Google frissítette a fejlesztői dokumentációját, hogy elmagyarázza, miért nem képesek a harmadik féltől származó kameraalkalmazások az Android 11 rendszeren reagálni a képi/videós szándékolt implicit műveletekre. További információkért görgessen az aljára. A 2020. augusztus 19-én megjelent cikk az alábbiakban megőrződik.
Az Android 11 megváltoztatja az alkalmazások interakcióját harmadik féltől származó kameraalkalmazások eszközén, ami megakadályozza, hogy megjelenjenek a kép-/videóválasztási szándékokban. Az Android régebbi verzióiban, ha egy alkalmazás lehetővé kívánja tenni a felhasználók számára, hogy képeket készítsenek, akkor az alkalmazáson belül is készíthet képeket (az Android különféle kamera-API-jeivel), vagy küldhet egy szándékot, amelyet egy dedikált kameraalkalmazás kezelhet a kép rögzítéséhez helyette. Ha egy alkalmazás úgy dönt, hogy az utóbbi lehetőséget választja, a régebbi Android-kiadások felhasználóinak egy egyértelműsítő párbeszédpanel jelenik meg, ahol kiválaszthatják a kép rögzítéséhez választott kameraalkalmazást. A párbeszédpanel általában megjeleníti a felhasználó eszközére telepített összes kameraalkalmazást, beleértve a harmadik féltől származó kameraalkalmazásokat is, mindaddig, amíg azok bizonyos szándékokra reagálnak. Android 11 esetén azonban a párbeszédpanel csak az előre telepített készlet kameraalkalmazásokat tartalmazza, kivéve, ha a fejlesztők kifejezetten bizonyos harmadik féltől származó kameraalkalmazásokat céloznak meg.
A változás gyakorlatilag azt jelenti, hogy a legtöbb esetben a felhasználóknak manuálisan kell elindítaniuk a harmadik féltől származó kameraalkalmazásokat, amikor fényképet szeretnének készíteni, így a harmadik féltől származó kameraalkalmazások használata kevésbé kényelmes. Ez arra is készteti a felhasználókat, hogy a harmadik féltől származó kameraalkalmazások fejlesztőit hibáztassák, amikor a felhasználó rájön, hogy kedvenc kameraalkalmazása már nem indítható el más alkalmazásokból. A Google úgy hajtja végre ezt a változást az Android 11 rendszerben, hogy megakadályozza, hogy a harmadik féltől származó kameraalkalmazások reagáljanak a következő szándékos műveletekre:
android.media.action.VIDEO_CAPTURE
android.media.action.IMAGE_CAPTURE
android.media.action.IMAGE_CAPTURE_SECURE
A Google azt mondja hogy ezt a változtatást az Android 11-ben a felhasználók magánéletének és biztonságának védelme érdekében vezették be. A cég nem részletezi, hogyan, de valószínű, hogy néhány rosszindulatú alkalmazás kameraalkalmazásnak álcázta magát, hogy hozzáférjen a felhasználó fényképeihez. A vállalat azonban megemlít egy megoldást a fejlesztők számára, amely lehetővé teszi az alkalmazások számára, hogy továbbra is indítsanak harmadik féltől származó kameraalkalmazásokat. A megoldás lényegében megköveteli, hogy a fejlesztők egy általuk választott, harmadik féltől származó alkalmazást célozzanak meg, amikor szándékot küldenek. Például egy dokumentumszkenner alkalmazás fejlesztője kifejezett szándékot küldhet az indításra Adobe Photoshop fényképezőgép ahelyett, hogy hallgatólagos szándékot küldene a kameraválasztó megnyitására. Az Android 11 lehetővé teszi, hogy a fejlesztők ne kérdezhessék le azoknak az alkalmazásoknak a listáját, amelyek válaszolni tudnak a fent említett háromra szándékos műveletek, ami azt jelenti, hogy a fejlesztőnek előre tudnia kell, hogy mely harmadik féltől származó kameraalkalmazásokat szeretné támogatás.
Forrás: CommonsWare, Android fejlesztők
Keresztül: Reddit
Köszönet az XDA Senior Tagnak AndroidDeveloperLB a tippért!
1. frissítés: A Google szerint ez a változtatás az adatvédelem megőrzését szolgálja
A Google frissítette Android 11 viselkedésmódosítási oldalát új információkkal a "a médiacélú műveletekhez rendszer alapértelmezett kamerája szükséges" szakasz (via A perem). A Google magyarázata szerint a változtatást úgy tervezték, hogy biztosítsa az EXIF hely metaadatainak helyes feldolgozását a az alkalmazás küldi a szándékot." A Google alapvetően attól tart, hogy azok az alkalmazások, amelyek még nem kaptak kifejezett helyhozzáférést, arra késztetik a felhasználókat, hogy olyan kameraalkalmazásokat nyissanak meg, amelyek van hozzáférést kapott a helyhez, és mivel az alkalmazásnak továbbított fotó EXIF-helyszínt tartalmazhat metaadatokat, akkor a hívó alkalmazás megkerülheti a helyhozzáférés kérését azáltal, hogy beolvassa a helyadatokat a fénykép. Ha egy alkalmazás megpróbálja ezt megtenni Android 11-ben, akkor deklarálnia kell ACCESS_MEDIA_LOCATION
szintén ACCESS_COARSE_LOCATION
vagy ACCESS_FINE_LOCATION
engedélyeket az EXIF hely metaadatainak olvasásához. (Megjegyzendő, A Google lezárt egy másik hely-hozzáférési kiskaput Android 10 rendszerben, ha az alkalmazásoknak kérniük kell a ACCESS_MEDIA_LOCATION
engedélyt, ha egy alkalmazás módosítatlan EXIF-metaadatokat próbál lekérni a fényképekről.)
Bár ez a viselkedésbeli változás hatással lesz az alkalmazások azon képességére, hogy elindítsák a felhasználó által definiált alapértelmezett kameraalkalmazást, mivel milyen régi és gyakran használt 3 A Google megjegyzi, hogy a változás nem érinti az összes szándékos műveletet, amely elindíthatja a felhasználó által meghatározott alapértelmezett kameraalkalmazást, mint pl. mint: android.provider.MediaStore.INTENT_ACTION_STILL_IMAGE_CAMERA
, android.provider.MediaStore.INTENT_ACTION_STILL_IMAGE_CAMERA_SECURE
, vagy android.provider.MediaStore.INTENT_ACTION_VIDEO_CAMERA
. Ezek a szándékok azonban nem ugyanazt a célt szolgálják, mivel csak az alapértelmezett kameraalkalmazást indítják el, nem pedig lehetővé teszik a kép visszaküldését a hívó alkalmazásnak.