[Актуализация: Повече подробности] Android 11 блокира приложенията за камера на трети страни да се показват в намеренията за избор на изображения/видео

click fraud protection

Android 11 въвежда промяна, която ще попречи на приложенията за камера на трети страни да се показват в действията за избор на изображения/видео.

Актуализация 1 (20.08.2020 г. в 18:15 ET): Google актуализира своята документация за разработчици, за да обясни защо приложенията за камери на трети страни в Android 11 не могат да отговорят на имплицитни действия за изображения/видео. Превъртете до дъното за повече информация. Статията, публикувана на 19 август 2020 г., е запазена по-долу.

Android 11 променя начина, по който приложенията взаимодействат с приложения за камера на трети страни на вашето устройство, което ще им попречи да се показват в намеренията за избор на изображение/видео. В по-старите версии на Android, ако дадено приложение иска да позволи на потребителите да заснемат изображение, то може или да реализира правене на снимки в приложението (използвайки различни API на камерата на Android) или може да изпрати намерение, което може да се обработва от специално приложение за камера за заснемане на изображението вместо. Ако дадено приложение реши да избере последната опция, на потребителите на по-стари версии на Android се представя диалогов прозорец за уточняване на недвусмислеността, за да изберат приложението за камера по свой избор, за да заснемат изображението. Диалоговият прозорец обикновено показва всички приложения за камера, инсталирани на устройството на потребителя, включително приложения за камера на трети страни, стига да са написани да отговарят на определени намерения. С Android 11 обаче диалоговият прозорец ще включва само предварително инсталирани стандартни приложения за камера, освен ако разработчиците не са насочени конкретно към определени приложения за камера на трети страни.

Промяната на практика означава, че в повечето случаи потребителите ще трябва ръчно да стартират приложения за камера на трети страни, когато искат да направят снимка, което прави приложенията за камера на трети страни по-малко удобни за използване. Освен това ще накара потребителите да обвиняват разработчиците на приложения за камера на трети страни, когато потребителят разбере, че любимото им приложение за камера вече не може да се стартира от други приложения. Google прилага тази промяна в Android 11, като не позволява на приложения за камера на трети страни да реагират на следните действия с намерение:

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

Google казва че тази промяна е въведена в Android 11, за да защити поверителността и сигурността на своите потребители. Компанията не уточнява как, но е вероятно някои злонамерени приложения да са се маскирали като приложения за камера, за да получат достъп до снимките на потребителя. Компанията обаче споменава заобиколно решение за разработчиците, което ще позволи на приложенията да стартират приложения за камери на трети страни. Заобиколното решение по същество изисква от разработчиците да се насочат към конкретно приложение на трета страна по свой избор, когато изпращат намерение. Например, разработчикът на приложение за скенер на документи може да изпрати изрично намерение за стартиране Камера на Adobe Photoshop вместо да изпраща имплицитно намерение за отваряне на инструмента за избор на камера. Android 11 прави така, че разработчиците да не могат дори да търсят списъка с приложения, които могат да отговорят на 3-те гореспоменати действия с намерение, което означава, че разработчикът ще трябва да знае предварително кои приложения за камера на трети страни иска поддържа.

източник: CommonsWare, Разработчици на Android

Чрез: Reddit

Благодарение на XDA Senior Member AndroidDeveloperLB за върха!

Актуализация 1: Google казва, че тази промяна е за запазване на поверителността

Google актуализира своята страница за промени в поведението на Android 11 с нова информация за "действията с медийно намерение изискват камера по подразбиране на системата" раздел (чрез На ръба). Промяната, обяснява Google, е „предназначена да гарантира, че EXIF ​​метаданните за местоположението се обработват правилно въз основа на разрешенията за местоположение, дефинирани в приложение, изпращащо намерението." По принцип Google е загрижен, че приложенията, на които все още не е предоставен изричен достъп до местоположението, карат потребителите да отварят приложения за камера, които имат получи достъп до местоположение и тъй като получената снимка, която се предава на приложението, може да съдържа EXIF ​​местоположение метаданни, тогава извикващото приложение може да заобиколи искането за достъп до местоположение, като прочете данните за местоположението от снимка. Ако дадено приложение се опита да направи това в Android 11, то ще трябва да декларира ACCESS_MEDIA_LOCATION както и ACCESS_COARSE_LOCATION или ACCESS_FINE_LOCATION разрешения за четене на EXIF ​​метаданни за местоположение. (За отбелязване, Google затвори друга вратичка за достъп до местоположение в Android 10 чрез изискване на приложения да поискат ACCESS_MEDIA_LOCATION разрешение, ако приложение се опита да извлече нередактирани EXIF ​​метаданни от снимки.)

Въпреки че тази промяна в поведението ще засегне способността на приложенията да стартират дефинираното от потребителя приложение за камера по подразбиране поради това колко стари и често използвани са 3 гореспоменатите действия с намерение са, Google отбелязва, че промяната не засяга всички действия с намерение, които могат да стартират дефинираното от потребителя приложение за камера по подразбиране, като като: android.provider.MediaStore.INTENT_ACTION_STILL_IMAGE_CAMERA, android.provider.MediaStore.INTENT_ACTION_STILL_IMAGE_CAMERA_SECURE, или android.provider.MediaStore.INTENT_ACTION_VIDEO_CAMERA. Тези намерения обаче не служат на същата цел, тъй като стартират само приложението за камера по подразбиране, вместо да позволяват изображението да бъде изпратено обратно към приложението за повикване.