ONLINE HELP
 WINDEVWEBDEV AND WINDEV MOBILE

Help / WLanguage / WLanguage functions / Mobile specific functions / Permission functions
WINDEV
WindowsLinuxUniversal Windows 10 AppJavaReports and QueriesUser code (UMC)
WEBDEV
WindowsLinuxPHPWEBDEV - Browser code
WINDEV Mobile
AndroidAndroid Widget iPhone/iPadIOS WidgetApple WatchMac CatalystUniversal Windows 10 App
Others
Stored procedures
Prompts the user to grant an application permission. This function makes it possible to show an information message to the user before the permission request.
Example
// Requests permission to access precise device location
// before calling GPSGetPosition
Perm is Permission = PermissionList("android.permission.ACCESS_FINE_LOCATION")
// If the permission has not been granted yet
IF NOT Perm.Granted THEN
// Information message
// Shows the user a message to explain
// why the application requires this permission
Info("xxxx requires this permission")
// Requests the permission
PermissionRequest(Perm, ProcRequestPermission)
INTERNAL PROCÉDURE ProcRequestPermission(Perm is Permission)
IF Perm.Granted THEN
MyPosition is géoPosition = GPSGetPosition()
...
END
END
END
Syntax

Requesting one permission Hide the details

PermissionRequest(<Permission> , <WLanguage procedure>)
<Permission>: Character string or Permission variable
Name of the permission to request. This parameter can correspond to:
  • a character string with the following format: android.permission.<NAME>. The list of permissions of the Android SDK can be found at: https://developer.android.com/reference/android/Manifest.permission.
  • a variable of type Permission.
  • one of the following constants:
    permBackgroundLocationPermission to access the device's location when the application is running in the background.
    Caution: This permission must be requested individually and after the permLocation or permFineLocation permissions are granted.
    permCameraPermission to access the device camera(s).
    permFineLocationPermission to access the device's precise location.
    permLocationPermission to access the device's location.
    permManageExternalStoragePermission to manage external storage. If this permission is requested, a system window will prompt the user to allow the application to access files on the external storage without restrictions.
    permReadContactPermission to read contacts.
    permReadPhoneStatePermission to access phone information.
    permRecordAudioPermission to record audio streams.
    permSendSMSPermission to send SMSes.
    permWriteContactPermission to modify contacts.
    permWriteExternalStoragePermission to write on the external storage.
<WLanguage procedure>: Procedure name
Name of the WLanguage procedure ("callback") called when the permission request is approved. This procedure has the following format:
PROCEDURE <Procedure name>(<Result>)
where <Result> is a Permission variable. The result of the permission request is assigned to the Granted property.

Requesting multiple permissions simultaneously Hide the details

PermissionRequest(<Permissions> , <WLanguage procedure>)
<Permissions>: Array
Requested permissions. This parameter can correspond to:
  • an array of strings in the following format: android.permission.<NAME>
  • an array of Permission variables.
<WLanguage procedure>: Procedure name
Name of the WLanguage procedure ("callback") called when the permission request is approved. This procedure has the following format:
PROCEDURE <Procedure name>(<Result>)
where <Result> is an array of Permission variables. For each permission, the result of the permission request is assigned to the Granted property.
Remarks
  • The permLocationBackground or "android.permission.ACCESS_BACKGROUND_LOCATION" permission must be requested individually and after the permLocation or permFineLocation permissions are granted.
  • The permission must have been declared in the application manifest. Otherwise, a fatal error will occur.
  • It is not necessary to call PermissionRequest for "normal" permissions (as opposed to "dangerous" permissions) because they are automatically granted when the application is installed, if they have been declared in the application manifest.
  • For "dangerous" permissions (access to the location of the device, camera, microphone, etc.), the Android framework automatically requests the permission when a relevant feature is used. However, PermissionRequest can be used when, for example, you want to display an information message to the user before requesting a permission.
  • If the permission has already been granted, no window will be displayed.
  • CAUTION: Since PermissionRequest can display a window for the user to approve the permission request, this function must be called from the main application thread.
  • To get the list of permissions declared by the application, use PermissionList.
Business / UI classification: Neutral code
Component: wd290android.aar
Minimum version required
  • Version 26
Comments
Click [Add] to post a comment

Last update: 05/26/2022

Send a report | Local help