首页 > 解决方案 > iOS上的相机​​权限一直被拒绝

问题描述

此代码正在请求相机权限以初始化相机以供以后使用,它在 Android 上运行良好,但在 iOS 上,权限不断被拒绝,而不显示权限请求对话框

  void _initCamera() async {
    if (await PermissionsService().hasCameraPermission()) {
      setState(() {
        isCameraPermissionGranted = true;
      });
      print('camera permission granted');
    } else {
      bool isGranted = await PermissionsService().requestCameraPermission(
          onPermissionDenied: () {
        AppUtil.showAlertDialog(
          context: context,
          heading: 'info',
          message:
              'You must grant this camera access to be able to use this feature.',
          firstBtnText: 'Give Permission',
          firstFunc: () async {
            Navigator.of(context).pop(false);
            await _initCamera();
          },
          secondBtnText: 'Leave',
          secondFunc: () async {
            print('camera permission denied');
            Navigator.of(context).pop();
            Navigator.of(context).pop();
          },
        );
      });
      setState(() {
        isCameraPermissionGranted = isGranted;
      });
      return;
    }

    if (isCameraPermissionGranted) {
      //initialization code
  }

知道为什么会发生这种行为吗?

标签: iosflutterdartcamera

解决方案


将此行添加到 iOS Runner 文件夹中的 info.plist 文件中,这将为 iOS 应用程序授予相机访问权限

<key>NSCameraUsageDescription</key>
    <string>This app requires access to the camera.</string>

推荐阅读