# Has permission

Checks if the App has the specified permission on the system.

Action available for the following operating systems:

![](/files/-MGIiDGuNcrVFP-DbUma)

### Parameters

***Permission***

* **\<Dynamic>**
* **Location**
* **Background Location**
* **Bluetooth Scan**
* **Bluetooth Connect**
* **Camera**
* **Microphone**
* **Notifications**
* **Phone Call**
* **Send SMS**

{% hint style="info" %}
To specify multiple, select Dynamic and specify values separated by CR
{% endhint %}

***Target Has Permission***

* Control or variable that will receive the permission status.\
  0 - No permission\
  1 - Permission granted

***Target Should Show UI***

* Hint if the App should show an UI explaining the user why the App needs the permission.\
  When the App does not have a permission and this is 1- Yes, then use this as an hint that you should show a message to the user saying why you are going to use. This normally is 0 - No, when the user has actively denied this permission before.\
  0 - No\
  1 - Yes

{% hint style="info" %}
Android specific:

* Background location is not requested at runtime, so it will trigger normal Location request
* Using Dynamic string, you can specify an Android SDK string permission like "android.permission.BLUETOOTH\_SCAN" for scaning bluetooth devices.
  {% endhint %}

{% hint style="info" %}
iOS specific:

* Phone Call and SMS are not requested at runtime, so always returns Granted
* Classic Bluetooth cannot be used, so always returns No.
  {% endhint %}

{% hint style="info" %}
Win10 specific:

* Only Location, Camera and Microphone are requested at runtime, so other permissions always return Yes
* Background location is not requested at runtime, so it will trigger normal Location request
* Calling this on Win10 can trigger a system dialog requesting permission to the user
  {% endhint %}

{% hint style="info" %}
Win32 specific:

* The concept of runtime permissions does not exists on this platform, so always returns Yes.
  {% endhint %}


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://doc.sysdevmobile.com/kalipso5/developing/form/actions/actions-description/group-others/haspermission.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
