10 Best Practices To Set Runtime Permission in Android

By James Tredwell on February 4, 2020

The mobile applications are essential tools of our lives to ensure day-to-day task execution and smoother communication.

When it comes to choosing between iOS and Android, the latter is my favorite because of its open-source nature that allows me to tweak the application and achieve maximum portability and scalability through my smartphone. I enjoy using Android apps.

Speaking of which, applications have much ground to cover to provide effective user experience to the end-user.

Out of all the other aspects, make people feel in control while using an Android app is the most important thing. People must be able to navigate through the app conveniently and must allow controlling the app’s accessibility to their phones.

One way to do that is to get the runtime permission message.

We all have experienced these dialogue boxes asking for access to our phone’s location, storage, camera, contacts, and every other minute detail required to use the app to its fullest potential.

For example, whenever you download a camera application, it would ask you to access the hardware of your camera to click the pictures. Similarly, all the applications that capture something would ask to grant access to camera hardware.

Apps like Uber or Google Maps would ask to grant access to the location of your device to provide a customized user experience.

However, for the sake of asking permission, developers sometimes go overboard and may frustrate users.

Therefore, it is incredibly crucial to understand why, how, when, and where they must ask users to grant permission.

That’s why we have come up with runtime permissions’ best practices.

We will discuss how to ask your application users gracefully.

Without further ADO, let’s dive straight in.

1. Don’t Ask Too Much

For example, you have downloaded a social media app that shares a photo, audio, and location to your followers.

Now, when you open the application and log in to your account for the first time, you come across a string of permission requests from the app.

I am sure many of us will quit the application if there are too many application access requests to be granted to the app.

Therefore, it is incredibly crucial to be mindful of maintaining the number of permissions. The best practice is to ask for permission whenever you need them.

In the above example, ask for access to storage or camera only when required. Otherwise, users would have to allow access, which may never be utilized by the app.

2. Be Clear

While asking for permission through a dialogue box on an app, you already have a small place and, therefore, make sure you are asking for what you want.

If you try to explain too much, users might not read everything. They might reject the request that would impact your app’s performance.

So, try to be clear for a couple of words. Clear communication would not only work like a charm but enables trust among users.

Now, it does not mean that you ask for something without any explanation. Sometimes, you might need to ask why you need specific services and hardware assistance of the user’s phone.

For example, a navigation app asking for location is okay. But if the app also requests to ask contacts and camera, then users might expect a reasonable explanation. At that time, try to be as transparent as possible without confusing the users.

3. Be Concise

A concise message will save a lot of time for users. Therefore, try to deliver your message with the least amount of words so that users can quickly decide whether to grant access or not and move on.

Otherwise, users would quit the app and may never return.

4. Use Plain Language

In this step, copywriting plays a vital role because you need to use inclusive language for users.

A complex message with too many technical jargons may turn people off.

Being a developer, if you try to explain technicalities during runtime, users will not engage with the app because not everyone has the technical knowledge about how Android works.

Therefore, the usage of plain English is highly recommended while asking for runtime permissions.

If you are targeting a local audience, then using the local language is also an active mode of communication for getting quick responses.

5. Pause The Media While Asking

For some apps, there would be an introductory video or any other multimedia content that auto-play when users access the app. At that time, if the app needs to ask for any permission, make sure the multimedia is paused.

Otherwise, when the video or audio keeps on playing at the background while users are forced to respond to the requests.

This would not result in good user experience because users have to either rewind or rewatch the content entirely just to catch the information which is missed while granting the permissions.

Therefore, it is recommended to keep this user UX in mind and make sure that the multimedia pauses immediately as the dialogue box appears in the application.

6. Don’t Be Annoying

Don’t ask users the same permissions multiple times. Supposedly, your application requires camera access, and the users have granted access for the first time.

For the sake of good user experience, you again asked them, and they rejected it.

Note this response and avoid asking for the camera access one more time unless it is essential.

If you keep asking multiple times, users would have frustrating and slugging user experience.

You can also encourage users to check the box “Don’t show this again” to not get the message every time.

7. Be Upfront

While asking users to grant permission about particular services and hardware, make sure you are always educating them about how to revoke the access.

Usually, in Android, users can go to settings and select the application from the list and uncheck the hardware access to revoke.

But not everyone knows that, so you can tell them that they are in control to revoke these rights if they feel so.

8. Focus on The Intent

You can use intent to let other application and does the runtime permissions for your application.

It will be super helpful if your application seldom asks for a particular type of permissions like location, camera, and so on.

Android’s default system would ask for the permissions and implement accordingly.

9. Get The Idea of The Device

Sometimes, an application would have specific device preferences for a different type of runtime requests.

And that’s why it is essential to identify which device is being used to enable custom user experience.

Device IMEI is one such identifier that can help you identify which device the user has.

10. Leverage The Power of Unique Identifier

For the sake of advertising and analytics, having a unique identifier can help you acquire priceless information about users.

You can collaborate with developers and create advertising identifiers that can help you create smart retargeting ads.

These custom identifiers would track user behavior and provide comprehensive data that you can use for your marketing activities.

So, make sure to add these identifiers to engage users in the future and provide them unparalleled user experience and enable personalized digital communication.


I’m excited to know what your thoughts are about these 10 best practices to set runtime permission in Android.

Drop your views below and let me know what you think about them and which methods you are going to implement for your Android app.

Author Bio:- Harikrishna Kundariya, a marketer, developer, IoT, ChatBot & Blockchain savvy, designer, co-founder, Director of eSparkBiz Technologies, an Android App Development Company.

Contact Us for Free Consultation

Are You Planning to outsource Digital Tansformation services? Feel free for work-related inquiries, our experts will revert you ASAP,