If your application is delivered via the Play Store and it needs to access a device’s location when that app is in the background, you need to be aware of a “new” policy that Google have introduced.
The Play Store policy for applications accessing location in the background is as follows:
In order to access the device’s location when running in the background you need to fill in a “permissions declaration form” that requires both a video demonstration of how Android runtime location permissions are presented to the user as well as have your app provide a “prominent in-app disclosure” that location is being gathered.
For more information on this policy as well as additional context, please see the Google support page at https://support.google.com/googleplay/android-developer/answer/9799150
This is a Play Store policy change, not an Android change and so any existing limitations on background location access (such as the frequency of updates being lowered in Oreo or the addition of ACCESS_BACKGROUND_LOCATION in A10) remain unaffected.
With its heavy emphasis on runtime permission dialogs and in-app disclosures, the policy does not take account of the common practice of pre-granting all required runtime permissions.
I have several test apps on the Play Store:
- Applications distributed through the managed Play Store
- Private applications distributed to a specific organization
And in all instances, I have had my apps flagged as being non-compliant with the new Play Store policy.
April 2020: Official policy announced.
September 30th 2020 (originally May 2020): Developers were given the opportunity to provide feedback.
January 18th 2021 (originally August 3rd 2020): All new apps submitted to Google Play need to be compliant before they can go live
March 29th 2021 (originally November 2nd 2020): All existing apps in the Play Store need to be compliant or those apps may be blocked and removed.
Although never seen by users in production, I would recommend following the new Play Store policy if you are distributing your application via either managed Google Play or even if you are distributing a private application to a specific organization via the Play Store.
This may mean updating your application to correctly handle runtime permissions that are not pre-granted but will eliminate the possibility of having the app removed from the Play Store by an automated policy enforcement check.
I did post a question to the Android Enterprise (AE) partner community to see how others have dealt with this restriction. The responses I received were in line with these recommendations, i.e. AE partners have incorporated runtime permissions into their applications in order to be compliant with the process, even though those dialogs would never be seen by device users.