相关疑难解决方法(0)

如何在 Flutter 中请求和检查权限

当用户单击“不允许”时,我正在使用各种插件来获取用户数据、联系人、照片和相机,应用程序进入静音状态。当用户选中从不再次询问和不允许并再次进入应用程序时,我想向用户显示询问权限对话框。

当前,当用户选中“不允许”时,应用程序不会再次询问

我知道用户必须授予应用访问个人信息的权限,包括当前位置相机日历联系人媒体库麦克风传感器语音和照片。虽然人们喜欢使用可以访问这些信息的应用程序的便利性,但他们也希望能够控制他们的私人数据。例如,人们喜欢能够使用他们的实际位置自动标记照片或查找附近的朋友,但他们也希望选择禁用此类功能。

如何在颤振中再次请求用户许可?

permissions dart android-permissions flutter ios-permissions

21
推荐指数
2
解决办法
5万
查看次数

Flutter iOS请求位置权限没有提示任何内容

我正在尝试请求我正在开发的应用程序的位置权限。它在 Android 设备上完美运行,但在 iOS 设备上没有任何提示。目标 iOS 版本是 11,我使用的软件包是geolocator: ^5.3.1permission_handler: ^5.0.0+hotfix.5

这是我的代码。

这是我的实用程序函数,用于在状态不是 时请求许可granted

Future<PermissionStatus> getDeviceLocationPermission() async {
 final PermissionStatus permissionStatus =
  await Permission.locationWhenInUse.status;

  if (permissionStatus != PermissionStatus.granted) {
    await Permission.locationWhenInUse.request();
  }

  return permissionStatus;
}
Run Code Online (Sandbox Code Playgroud)

这是我收集职位详细信息的实用函数。

Future<Position> getDeviceCurrentLocation(
    {@required PermissionStatus permissionStatus}) async {
  Position position;
  Geolocator geolocator = Geolocator()..forceAndroidLocationManager;

  if (permissionStatus == null) {
    return null;
  }

  if (permissionStatus == PermissionStatus.granted) {
    position = await geolocator.getCurrentPosition(
        desiredAccuracy: LocationAccuracy.high);
  }

  return position;
}
Run Code Online (Sandbox Code Playgroud)

这就是我在有状态小部件内访问这些实用程序的方式。

getDeviceLocationPermission().then((permissionStatus) { …
Run Code Online (Sandbox Code Playgroud)

permissions location flutter

6
推荐指数
2
解决办法
1万
查看次数

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

我正在尝试访问用户设备的麦克风,我已经成功地集成了 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)

permission-denied dart flutter

5
推荐指数
1
解决办法
2700
查看次数