Things are going to alter with Android 11 for apps that ask for photos or videos. 3 specific intents will stop to work like they used to, including: IMAGE_CAPTURE, image_capture_secure, and video_capture. Android 11 will now immediately offer the pre-installed video camera app to carry out these actions without ever browsing for other apps to fill the function.
The paperwork encourages clearly checking for installed electronic camera apps by their plan names– implying developers would have to choose preferred apps up front– and sending users to those apps straight. A user can set a third celebration cam app as the default camera app.
As Mark Murphy of CommonsWare points out, Google does prescribe a workaround for designers, although its not really helpful. The documents encourages clearly examining for set up electronic camera apps by their plan names– implying designers would need to pick favored apps up front– and sending out users to those apps straight. Obviously, there are other ways to get choices without identifying all plan names, like getting a list of all apps and then by hand looking for intent filters, however this appears like an over-complication.
This story was initially released 2020/08/18 10:00 am PDTon Aug 18, 2020 and last updated 2020/08/20 2:54 pm PDTon Aug 20, 2020..
Given that the auction app wasnt constructed for photography, the designer chose to leave that up to a correct camera app. Developers just produce a request with a few requirements and Android will prompt users to choose from a list of set up apps to do the task.
This is designed to guarantee that the EXIF area metadata is correctly processed based upon the location permissions specified within the app sending out the intent.
To get EXIF place metadata from the pre-installed system electronic camera app when using intents that have among the preceding intent actions, your app must declare ACCESS_MEDIA_LOCATION in addition to the ACCESS_COARSE_LOCATION or ACCESS_FINE_LOCATION approval.
If you want a particular third-party cam app to handle your apps intent, you may do so by explicitly defining the third-party video camera apps package name to satisfy the intent.
This modification does not impact users capability to install and utilize any electronic camera app to catch videos or images directly. A user can set a 3rd celebration cam app as the default electronic camera app. This modification also does not affect intent actions that launch the user-specified default camera app, including android.provider.MediaStore.INTENT _ ACTION_STILL_IMAGE_CAMERA, android.provider.MediaStore.INTENT _ ACTION_STILL_IMAGE_CAMERA_SECURE, or android.provider.MediaStore.INTENT _ ACTION_VIDEO_CAMERA.
Harvesting EXIF data in this way has really been recorded in the past when Shutterfly was captured doing it in 2019. This change will restrict the simplest course to hijacking place data, however it leaves some workarounds like calling out to video camera apps directly or asking users to take images and pack them from a media service provider. Its possible Google may have to take extra steps to entirely shut the door on this strategy.
I ran a test with some simple code to query for the camera apps on a phone, then ran it on devices running Android 10 and 11 with the very same set of camera apps installed. Android 10 provided back a complete set of apps, but Android 11 reported nothing, not even Googles own pre-installed Camera app.
” … our company believe its the right trade-off to protect the personal privacy and security of our users.”– Google Issue Tracker.
Google attributes the modification to prospective geotag hijacking.
This definitely isnt a devastating modification, and for lots of users that currently default to their integrated electronic camera, it will be completely transparent. And most apps will still permit users to switch to their favored electronic camera to get an excellent shot, then publish it from the gallery. This means more work for users, and its a kick in the pants to individuals that regularly snap profile images with a filter or for those that rely on G Cam ports to replace their stock cam. Furthermore, some apps do not permit different workflows, meaning youre stuck with whatever camera app exists.
Video camera picker on Android 10.
Google explains the change in a list of brand-new habits in Android 11, and further confirmed it in the Issue Tracker. Privacy and security are cited as the factor, however theres no conversation about what exactly made those intents harmful. Perhaps some users were tricked into setting a malicious electronic camera app as the default and then utilizing it to record things that ought to have remained personal.
The brand-new behavior is enforced in a minimum of the present Android 11 beta release, and it will take place to any apps no matter whether they target API 30 or something lower. We dont know yet if the Android CTS (Compatibility Test Suite) will require this behavior or if OEMs will be allowed to alter it back to the previous guidelines, however its likely this will become the basic going forward.
In a response to The Verge, Google described that this change was made to “keep bad stars from potentially gathering your area.” This explanation was likewise added in an update to the list of modifications in Android 11, in addition to more technical details and a clarification that this does not inhibit the ability to set up and utilize third-party cam apps.
Android may have begun with the mantra that developers are enabled to do anything as long as they can code it, but things have actually changed for many years as security and privacy became higher priorities. Every major update over the last years has actually shuttered features or included constraints in the name of securing users, however some sacrifices may not have actually been completely essential. Another Android 11 trade-off has actually emerged, this time removing the ability for users to select third-party video camera apps to take photos or videos on behalf of other apps, forcing users to rely just on the built-in cam app.
Another Android 11 trade-off has emerged, this time taking away the ability for users to select third-party cam apps to take photos or videos on behalf of other apps, forcing users to rely only on the built-in electronic camera app.
Above: Debugger view on Android 10. Below: Same view on Android 11.
Not only does Android 11 take the liberty of immediately releasing the pre-installed video camera app when requested, it also avoids app developers from easily providing their own interface to replicate the very same functionality. I ran a test with some easy code to query for the camera apps on a phone, then ran it on gadgets running Android 10 and 11 with the same set of video camera apps installed. Android 10 returned a complete set of apps, however Android 11 reported nothing, not even Googles own pre-installed Camera app.
Beginning in Android 11, only pre-installed system electronic camera apps can react to the following intent actions:.
If more than one pre-installed system camera app is offered, the system provides a dialog for the user to pick an app. If you want your app to use a specific third-party video camera app to catch images or videos on its behalf, you can make these intents explicit by setting a bundle name or part for the intent.