request static method
Future<RPPermissionStatus>
request(
- RPPermissionType type, {
- List<
String> healthDataTypes = const [],
Asks the OS for type through requester and returns the outcome.
healthDataTypes is only used for RPPermissionType.health, which is not
a single permission: Apple HealthKit and Android Health Connect authorise
each data type separately. Without any, there is nothing to ask for and
that type resolves to RPPermissionStatus.unsupported.
Never throws — an error in requester resolves to RPPermissionStatus.unknown rather than interrupting the consent flow.
Implementation
static Future<RPPermissionStatus> request(
RPPermissionType type, {
List<String> healthDataTypes = const [],
}) async {
if (type == RPPermissionType.health && healthDataTypes.isEmpty) {
return RPPermissionStatus.unsupported;
}
final requester = RPPermissions.requester;
if (requester == null) {
debugPrint('$RPPermissions - $type cannot be requested, because no '
'RPPermissions.requester has been set.');
return RPPermissionStatus.unsupported;
}
try {
return await requester(type, healthDataTypes: healthDataTypes);
} catch (error) {
debugPrint('$RPPermissions - error requesting $type - error: $error');
return RPPermissionStatus.unknown;
}
}