У меня спросили разрешение у пользователя во время выполнения, но мне нужно задать НЕСКОЛЬКО разрешений, например, для телефона, контакта, SMS и т. Д. c, поэтому я застрял на том, как вызывать этот метод один за другим, есть ли способ спросить, после того, как одно разрешение завершено, другое всплывающее окно открыто?
import 'package:permission_handler/permission_handler.dart';
class PermissionService{
final PermissionHandler _permissionHandler = PermissionHandler();
Future<bool> _requestPermissionContact(PermissionGroup permission) async {
var result = await _permissionHandler.requestPermissions([permission]);
if (result[PermissionGroup.contacts] == PermissionStatus.granted) {
print("sfhalsjfhas fasdhufaiusfh aloifahdf oalsifu");
}
}
Future<bool> requestContactPermission({Function onPermissionDenied}) async {
var granted = await _requestPermissionContact(PermissionGroup.contacts);
if (!granted) {
onPermissionDenied();
}
return granted;
}
Future<bool> hasContactPermission() async {
return hasPermission(PermissionGroup.contacts);
}
Future<bool> _requestPermissionSms(PermissionGroup permission) async {
var result = await _permissionHandler.requestPermissions([permission]);
if (result[permission] == PermissionStatus.granted) {
print("sfhalsjfhas fasdhufaiusfh aloifahdf oalsifu");
return true;
}
return false;
}
Future<bool> requestSmsPermission({Function onPermissionDenied}) async {
var granted = await _requestPermissionSms(PermissionGroup.sms);
if (!granted) {
onPermissionDenied();
}
return granted;
}
Future<bool> hasSmsPermission() async {
_requestPermissionPhone(PermissionGroup.phone);
return hasPermission(PermissionGroup.sms);
}
Future<bool> _requestPermissionPhone(PermissionGroup permission) async {
var result = await _permissionHandler.requestPermissions([permission]);
if (result[permission] == PermissionStatus.granted) {
return true;
}
return false;
}
Future<bool> requestPhonePermission({Function onPermissionDenied}) async {
var granted = await _requestPermissionPhone(PermissionGroup.phone);
if (!granted) {
onPermissionDenied();
}
return granted;
}
Future<bool> hasPhonePermission() async {
return hasPermission(PermissionGroup.phone);
}
Future<bool> hasPermission(PermissionGroup permission) async {
var permissionStatus =
await _permissionHandler.checkPermissionStatus(permission);
return permissionStatus == PermissionStatus.granted;
}
}
это мой класс разрешений, я хочу назвать эти три разрешения, и в initState меня называли так:
@override
initState() {
permissionAcess();
permissionAcessSms();
permissionAcessPhone();
super.initState();
}
Future permissionAcess() {
PermissionService().requestContactPermission(onPermissionDenied: () {
print('Permission has been denied');
});
}
Future permissionAcessSms() {
PermissionService().requestSmsPermission(onPermissionDenied: () {
print('Permission has been denied');
});
}
Future permissionAcessPhone() {
PermissionService().requestPhonePermission(onPermissionDenied: () {
print('Permission has been denied');
});
}
, но это вызывается только одно разрешение, так как назвать все эти три разрешения во время выполнения?