ONLINE HELP
 WINDEVWEBDEV AND WINDEV MOBILE

This content has been translated automatically.  Click here  to view the French version.
Help / WLanguage / WLanguage functions / Mobile specific functions / Permission functions
WINDEV
WindowsLinuxJavaReports and QueriesUser code (UMC)
WEBDEV
WindowsLinuxPHPWEBDEV - Browser code
WINDEV Mobile
AndroidAndroid Widget iPhone/iPadIOS WidgetApple WatchMac Catalyst
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
// Demande la permission pour autoriser la localisation précise de l'appareil 
// avant d'appeler la fonction GPSRécupèrePosition
Perm is Permission = PermissionList("android.permission.ACCESS_FINE_LOCATION")
// Si la permission n'a pas déjà été accordée
IF NOT Perm.Accordé THEN
	// Message informatif
	// Affiche un message à l'utilisateur pour lui indiquer 
	// pourquoi l'application a besoin de cette permission
	Info("Cette permission est nécessaire pour xxxx")
	// Demande la permission
	PermissionRequest(Perm, ProcDemandePermission)
	INTERNAL PROCEDURE ProcDemandePermission(Perm is Permission)
		IF Perm.Accordé THEN
			MaPosition is geoPosition = 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:
  • to a string of the form: android.permission.<NOM>. The Android SDK permissions list is available at the following address: 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.
    Warning: this permission must be requested alone, and after accepting the permissions corresponding to the constants permLocation constants or permLocalisationPrecise constants.
    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:
  • to an array of strings of the form: android.permission.<NOM>
  • 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.
  • WARNING: Since the PermissionRequest function can display a window for the user to validate the Permission request, this function must be called from the application's main thread.
  • To get the list of permissions declared by the application, use PermissionList.
Business / UI classification: Neutral code
Component: wd300android.aar
Minimum version required
  • Version 26
Comments
Click [Add] to post a comment

Last update: 03/27/2025

Send a report | Local help