PermissionsAndroid
Android-only API for the runtime permissions model (Android M+). While certain
permissions are granted by default as long as they are listed in
AndroidManifest.xml, dangerous permissions require a dialog. This API helps
manage those permissions.
Types
Permission.t
Examples of available permissions (see the binding for the full list):
Permission.camera
Permission.recordAudio
Permission.accessFineLocation
Permission.postNotifications
Permission.readMediaImages
Permission.bluetoothConnect
// ...
Result.t
Result.granted
Result.denied
Result.neverAskAgain
rationale
Optional explanation dialog shown when re-requesting a permission.
type rationale = {
title: string,
message: string,
buttonPositive: string,
buttonNegative?: string,
buttonNeutral?: string,
}
dict
Result map returned by requestMultiple. Values are accessed with get.
Methods
check
check: Permission.t => promise<bool>
request
Request a single permission. Optionally pass a rationale.
request: (Permission.t, ~rationale: rationale=?) => promise<Result.t>
let result = await PermissionsAndroid.request(
PermissionsAndroid.Permission.camera,
~rationale={
title: "Camera",
message: "We need the camera to scan QR codes",
buttonPositive: "OK",
},
)
requestMultiple
requestMultiple: array<Permission.t> => promise<dict>
get
get: (dict, Permission.t) => option<Result.t>