Josh Cunningham

Software Engineer

Android Privacy Features

20210219

Privacy features are increasingly important to protect users and their data. Android provides various privacy options with each version release. While developing an Android app it is important to have an understanding of these options available to design an app with them in mind. This article will catalogue the most important privacy changes from Android 11 and 10, and how they may affect app development.

Android 11

Starting with the most recent Android update, Android 11 represents a big change in how permissions are handled. The user now has the option to only allow a permission for a single use. This means that once they close the app, the next time they use it the user will be prompted for that permission again. This change affects location, microphone and camera permissions. In a lottery setting, this could be used with the “Ticket Checker” functionality in an app which uses the camera to scan a ticket, or used with a player’s location when finding the nearest retailer.

In contrast, there is now only one option for denying a permission. Pressing this permission acts like the “Deny and don’t ask again” option in previous versions of Android. This means that any permission denial will prevent the app from showing the permissions prompt to the user again. This makes it even more important to follow Android best practices for app development by checking whether the permission has been permanently denied first and if so, give the user a suitable reason why they should enable it from the settings.

Another change is how permissions work in Android 11 is auto-revoke. This means that if an app has not been used for an extended period of time, any of the previously allowed permissions will be revoked. This will not require any development change assuming app development best practices are used, however, it is worth being aware of.

Android 10

Apps developed with Android 10 in mind will now have access to certain areas of external storage by default. This means that the app will be able to modify the files of a designated area of storage for app-related files. This allows the creation or removal of these files from within the app without having to request the permission first. This might include things such as using the app to save a picture or video.

Knowing a player’s location is a key feature for any gaming app. Android 10 builds on this by adding a permission for accessing location while in the background. This means that if developers are planning on collecting location information while the app is not actively running (i.e. not in the foreground of an unlocked phone) and targets Android 10 or higher; then they will need to specify the background permission in the manifest and ask for it alongside other location permissions. If an app targets Android 9 or lower, then on Android 10 devices the background location permission will be added to the manifest during installation automatically if another location permission listed. In addition, the app will also automatically request the background permission alongside the other location permission in this scenario.

Finally, on Android 10 you can no longer enable or disable the device's Wi-Fi directly. If this is something an app needs to do, it should instead notify the user to enable or disable Wi-Fi using a settings panel or similar prompt. This gives more control to the user and prevents an app from automatically switching networks and potentially using a player’s mobile data without their consent.

Over the course of these releases, it is evident that more control is passed over to the end-user when it comes to privacy settings and access to private information. As we know, Android 11 is underpinned by three key themes: People, Privacy and Control. These updated privacy features are in line with Android’s move to bring privacy to the forefront of everything they do. It is paramount that developers build Android apps with Android best practices in mind and adhere to these key privacy updates to better engage with the end-user.