Why You Should Explain Your Android App's Requested Permissions

I recently installed the Trello app for Android. Looking through the description, I saw a great example of explaining the device permissions that the app wanted (text below):

Here is the text:

PERMISSIONS REQUESTED For more information on our privacy and security policies please see https://trello.com/privacy FULL NETWORK ACCESS - We use network access to communicate with trello.com and sync your data between all of your devices. CAMERA - When you tap the camera button, we use your camera to enable you to attach a photo to a Trello card. MODIFY OR DELETE THE CONTENTS OF YOUR USB STORAGE MODIFY OR DELETE THE CONTENTS OF YOUR SD CARD - We use storage access to store your data on your device so that you have fast access to it, even when you’re offline.

This is an excellent example of how to explain why the permissions requested are both necessary and useful to the user.

Breakdown

Let’s break the example down.

PERMISSIONS REQUESTED

Here, Trello needed to create their own section of the description to discuss why certain permissions are needed. More on this later.

FULL NETWORK ACCESS - We use network access to communicate with trello.com and sync your data between all of your devices.

Good example of why they need full network access. Note that they say “trello.com” instead of “our servers” or “Trello backend”, resulting in a more human and understandable message. They also provide a benefit: you get syncing between all of your devices. Sign me up!

CAMERA - When you tap the camera button, we use your camera to enable you to attach a photo to a Trello card.

Here, it’s clear why the app wants permission to use your camera. Attaching photos you take with your mobile device by just tapping is a useful feature that Trello gets a chance to point out.

MODIFY OR DELETE THE CONTENTS OF YOUR USB STORAGE, MODIFY OR DELETE THE CONTENTS OF YOUR SD CARD - We use storage access to store your data on your device so that you have fast access to it, even when you’re offline.

Possibly the best one. They take some scary-looking permissions and explain how they are used. Users can understand that Trello is looking out for me to have a speedy app experience, even when I am offline. Last, they don’t say anything about deleting files, which serves to reassure the user.

The current state of affairs

Currently, many apps request permissions like “read phone status and identity”, “add or remove accounts”, and so forth. You may be an avid phone user or even app developer and understand what the permissions can do. However, consider the perspective of a nontechnical user. There is often no clear way to understand why all of these permissions are needed.

He or she might ask: “Will this app requesting permission to delete files going to erase my pictures?” Or maybe: “Will this app that I don’t really trust spam my friends?” Or: “Why does my alarm clock app need to know about my phone call status?” (Reason: so it can smoothly handle a phone call happening when your alarm clock is ringing. Not entirely intuitive.)

Whether to install an app is some function of the user’s sophistication, their paranoia, and the app’s trust factors. Trust factors might include: clear description, nice icon, many downloads, positive reviews, and–you guessed it–understandable permissions. Some ideas of how people navigate a permissions model they don’t entirely understand:

The “YOLO” approach Install everything and anything that looks useful. Soon to be spamming you.

The “head in the sand” approach Probably the default approach. Just install the app if it looks cool and not overtly dangerous. Ignore permission description.

The “only install if I trust this app” approach I only install apps that have really good ratings or come from a big name company. If permissions seem strange, don’t install.

The “read all of the reviews” approach I read a bunch of reviews/comments to figure out whether this app is legitimate or not. Time-consuming.



If you are an app creator, one issue you face is having users that get turned off by permissions that they don’t understand or don’t want. I have seen several apps where people leave comments to this effect, and others that use no permissions and are praised by it in the reviews.

You probably can’t change a user’s sophistication or paranoia level while they are deciding whether to install your app, so the only thing you can really do is increase your trust factors. Use the minimum needed permissions and explain them to alleviate fears (even unfounded fears.)

Moving it to the app market

App markets would be well served by making an explanation of the requested permissions a formal part of the app description. I am not in a good position to say whether this should be a required or optional field, but at least providing a field attached to each permission and making it clear that this is a good practice would help users better understand the permissions their apps are seeking. Opting in is much easier than coming up with this structure on your own. Hence, I think permission description should be first-class field on the app description.

Takeaways

If you do one thing after reading this article, add a “permissions requested” section to your app description that talks in human terms about what permissions your app needs.

I’m curious to hear any other ways to increase the trust factor of your app, or what other description hacks you have seen that made installing the app more clear.