This story was initially printed and final up to date .
Android could have began with the mantra that builders are allowed to do something so long as they’ll code it, however issues have modified through the years as safety and privateness turned larger priorities. Each main replace during the last decade has shuttered options or added restrictions within the title of defending customers, however some sacrifices could not have been completely mandatory. One other Android 11 trade-off has emerged, this time taking away the flexibility for customers to pick third-party digital camera apps to take footage or movies on behalf of different apps, forcing customers to rely solely on the built-in digital camera app.
On the coronary heart of this transformation is among the defining traits of Android: the Intent system. As an example you should take an image of a novelty espresso mug to promote via an public sale app. For the reason that public sale app wasn’t constructed for pictures, the developer selected to depart that as much as a correct digital camera app. This the place the Intent system comes into play. Builders merely create a request with a number of standards and Android will immediate customers to select from a listing of put in apps to do the job.
Digicam picker on Android 10.
Nonetheless, issues are going to alter with Android 11 for apps that ask for images or movies. Three particular intents will stop to work like they used to, together with: VIDEO_CAPTURE, IMAGE_CAPTURE, and IMAGE_CAPTURE_SECURE. Android 11 will now routinely present the pre-installed digital camera app to carry out these actions with out ever trying to find different apps to fill the position.
Beginning in Android 11, solely pre-installed system digital camera apps can reply to the next intent actions:
If multiple pre-installed system digital camera app is accessible, the system presents a dialog for the person to pick an app. If you need your app to make use of a selected third-party digital camera app to seize pictures or movies on its behalf, you can also make these intents express by setting a package deal title or part for the intent.
Google describes the change in a list of new behaviors in Android 11, and additional confirmed it in the Issue Tracker. Privateness and safety are cited as the explanation, however there is not any dialogue about what precisely made these intents harmful. Maybe some customers have been tricked into setting a malicious digital camera app because the default after which utilizing it to seize issues that ought to have remained personal.
“… we imagine it is the proper trade-off to guard the privateness and safety of our customers.” — Google Issue Tracker.
Not solely does Android 11 take the freedom of routinely launching the pre-installed digital camera app when requested, it additionally prevents app builders from conveniently offering their very own interface to simulate the identical performance. I ran a check with some easy code to question for the digital camera apps on a cellphone, then ran it on gadgets working Android 10 and 11 with the identical set of digital camera apps put in. Android 10 gave again a full set of apps, however Android 11 reported nothing, not even Google’s personal pre-installed Digicam app.
Above: Debugger view on Android 10. Beneath: Identical view on Android 11.
As Mark Murphy of CommonsWare points out, Google does prescribe a workaround for builders, though it is not very helpful. The documentation advises explicitly checking for put in digital camera apps by their package deal names — that means builders must choose most well-liked apps up entrance — and sending customers to these apps instantly. After all, there are different methods to get choices with out figuring out all package deal names, like getting a listing of all apps after which manually trying to find intent filters, however this looks as if an over-complication.
The brand new habits is enforced in no less than the present Android 11 beta launch, and it’ll occur to any apps no matter whether or not they goal API 30 or one thing decrease. We do not know but if the Android CTS (Compatibility Check Suite) would require this habits or if OEMs might be allowed to alter it again to the earlier guidelines, however it’s doubtless this may change into the usual going ahead.
This actually is not a devastating change, and for a lot of customers that already default to their built-in digital camera, will probably be completely clear. And most apps will nonetheless permit customers to modify over to their most well-liked digital camera to seize a great shot, then add it from the gallery. Nonetheless, this implies extra work for customers, and it is a kick within the pants to those that usually snap profile footage with a filter or for those who depend on G Cam ports to interchange their inventory digital camera. Moreover, some apps do not permit for various workflows, that means you are caught with no matter digital camera app is there.
Google attributes the change to potential geotag hijacking
In a response to The Verge, Google defined that this transformation was made to “hold unhealthy actors from doubtlessly harvesting your location.” This rationalization was additionally added in an update to the list of changes in Android 11, together with extra technical particulars and a clarification that this doesn’t inhibit the flexibility to put in and use third-party digital camera apps.
That is designed to make sure that the EXIF location metadata is accurately processed primarily based on the placement permissions outlined inside the app sending the intent.
To obtain EXIF location metadata from the pre-installed system digital camera app when utilizing intents which have one of many previous intent actions, your app should declare
ACCESS_MEDIA_LOCATIONalong with the
If you need a selected third-party digital camera app to deal with your app’s intent, you could accomplish that by explicitly specifying the third-party digital camera app’s package deal title to meet the intent.
This modification doesn’t have an effect on customers’ functionality to put in and use any digital camera app to seize pictures or movies instantly. A person can set a 3rd social gathering digital camera app because the default digital camera app. This modification additionally does not have an effect on intent actions that launch the user-specified default digital camera app, together with
Harvesting EXIF information on this means has really been documented up to now when Shutterfly was caught doing it in 2019. This modification will limit the best path to hijacking location information, however it leaves some workarounds like calling out to digital camera apps instantly or asking customers to take images and cargo them from a media supplier. It is doable Google could must take further steps to utterly shut the door on this tactic.