如果已经被拒绝,Flutter Permission Handler 不会重新请求许可

TJM*_*h95 5 permission-denied dart flutter

我正在尝试访问用户设备的麦克风,我已经成功地集成了 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:
          }
        },
      ),
    );
  }
}
Run Code Online (Sandbox Code Playgroud)

Ale*_*dar 5

如前所述这儿,你不能再在iOS上申请许可,就被拒绝了。您必须将用户带到“设置”应用并让他们手动授予您的应用权限。

App Settings是一个很好的包,尤其是他们的openAppSettings方法。

被拒绝后请求许可