requestPermissions method
void
requestPermissions(
- dynamic back, {
- bool chat = true,
- int index = -1,
})
Implementation
void requestPermissions(back, {bool chat = true, int index = -1}) async {
Map<Permission, PermissionStatus> rest;
if (chat) {
rest = await [
Permission.camera,
Permission.microphone,
].request();
} else if (index == 0) {
rest = await [
Permission.camera,
].request();
} else if (index == 1) {
rest = await [
Platform.isAndroid ? Permission.storage : Permission.photos,
].request();
} else if (index == 2) {
rest = await [
Permission.microphone,
].request();
} else {
rest = await [
Permission.storage,
].request();
}
AppConfig.printLog(rest);
bool denied = rest.containsValue(PermissionStatus.permanentlyDenied) ||
rest.containsValue(PermissionStatus.restricted);
if (denied) {
showDenied(chat, index);
} else {
if (rest[Permission.camera] == PermissionStatus.granted) {
delegate?.logEvent('用户同意摄像头权限');
} else {
delegate?.logEvent('用户拒绝摄像头权限');
}
if (rest[Permission.microphone] == PermissionStatus.granted) {
delegate?.logEvent('用户同意麦克风权限');
} else {
delegate?.logEvent('用户拒绝麦克风权限');
}
}
bool allOk = true;
rest.values.forEach((element) {
if (element != PermissionStatus.granted) {
allOk = false;
}
});
back?.call(allOk);
}