Permisson query: add reason to message

Regarding this permission request: is it possible to add a text to this message to explain the reasons for this required permission?: Is there a possibility to add some text to this query, like the reason why this permission is needed?

Or is it possible to add a notifier BEFORE this query appears? OR any other idea?

You can show a notifier and tell them the reason for asking the permission and after user clicked on OK then ask for this permission.

How to set the notifier before query? It appears automatically when screen initialize

Actually I am using PC so currently I can’t say anything wait for some time.
Till then may others relpy.

how does your Screen1.Initialize event look like?

all contact arrangements contain a clickable image with a phone call option.

what happens, if you disable all these blocks? do you still get the premission request window?
if not, you might want to display your custom message in the Screen.Initialize event and move all these blocks from the Initialize event to a procedure… call that procedure after the user read your custom message…


1 Like

Better is, that the permission request only appears, when user clicks on the phone button (clickable image). How is this possible?

we can think about that after you answered my question…


If you uses this component image Then it will ask permission on screen Initialize.
I don’t think you can change something here.
As @Taifun asked

Answer this maybe he has some solution for you.

I will test this of course and will report result here

Ok my blocks are working properly, but the query overlays the notifier instant.
It’s not even time to read the Notifier at all.
I therefore have to give the hint before changing the screen. But this is not user-friendly. I will leave it as it was before and give a reference to it on google play store entry or the data protection declaration.

Thanks for looking into it @Taifun @themaayur

1 Like

are you saying, you now additionally added a Notifier in Screen1.Initialize?
unfortunately you did not answer the question…

what happens, if you disable all these blocks? do you still get the permission request window?

so let’s assume, you do not get the permission request window after disabling all blocks in Screen.Initialize then you can put a Notifier.ShowChooseDialog into the Screen1.Initialize event and move all your other blocks from the Screen1.Initialize event to the Notifier.AfterChoosing event


No this does not work. Even if that screen.initialize is not used, the request appears.

I already tested what you said! thanks

Ask your users to agree the phone call permission manually.

There is a new problem. If the user denies access and later clicks backpress (coded: gotoscreen, getscreen screen1, close screen a.s.o), the app crashes. If the user agrees, this does not happen and the app continues to run as expected and switches the screens as usual coded.

@Boban I read your post. See my post above. Is there a solution?

Post a test aia. Describe exactly the steps to reproduce this issue:

  1. do this
  2. do that
  3. …

Tested with .apk on a Android 7.0

Open the app.
Click on “Go to Screen2”
DENY the permission to make phone calls
Backpress the screen2

phonecall.aia (4.7 KB) phonecall.apk (5.0 MB)

Yes, there seem to be several issues (bugs) related to permissions once again.
Your app works with AI2 without any problems. No (dangerous) permissions are requested there, except for READ permission.

AI2 → permissions from your test aia [AI2 → APK: phonecall2.apk (3.3 MB) ]

<uses-permission android:name="android.permission.INTERNET"/>
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE"/>
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>

Kodular → permissions:

<uses-permission android:name="android.permission.CALL_PHONE"/>
<uses-permission android:name="android.permission.INTERNET"/>
<uses-permission android:name="android.permission.READ_CALL_LOG"/>
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
<uses-permission android:name="android.permission.PROCESS_OUTGOING_CALLS"/>
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE"/>
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.READ_PHONE_STATE"/>