问题描述
我正在尝试访问用户设备的麦克风,我设法成功集成了Permissions_handler软件包。当我单击麦克风图标时,按预期方式弹出请求许可权消息,但是我按了拒绝以处理该情况,但是现在,当我单击麦克风图标时,没有消息弹出,因为我已经拒绝了许可权。我的问题是,如果用户之前未授予用户许可,我该如何重新请求用户许可?这是我的代码:
import 'package:flutter/material.dart';
import 'package:permission_handler/permission_handler.dart';
class InsideLeft extends StatefulWidget {
@override
_InsideLeftState createState() => _InsideLeftState();
}
class _InsideLeftState extends State<InsideLeft> {
@override
Widget build(BuildContext context) {
return Container(
child: GestureDetector(
child: Icon(Icons.mic),onTap: () async {
var status = await Permission.microphone.status;
switch (status) {
case PermissionStatus.granted:
print('Granted');
break;
case PermissionStatus.denied:
print('denied');
await Permission.microphone.request();
break;
case PermissionStatus.restricted:
print('restricted');
break;
case PermissionStatus.undetermined:
print('undetermined');
break;
case PermissionStatus.permanentlyDenied:
print('Permanently denied');
break;
default:
}
},),);
}
}
解决方法
如 here 所述,您无法在 iOS 上再次请求权限,一旦被拒绝。您必须将用户带到“设置”应用,并让他们手动授予您的应用权限。
App Settings 是一个很好的包,尤其是他们的 openAppSettings
方法。