华为位置拒绝位置权限Flutter应用崩溃

quhf5bfb  于 2023-01-31  发布在  Flutter
关注(0)|答案(1)|浏览(381)

我正在实现获取华为设备的设备位置,它是工作时,权限被授予,但当被拒绝应用程序崩溃。
用谷歌的定位,这从来没有发生过。
下面是我的代码获取位置:

Future<Location?> getAccuratePositionH() async {
  PermissionHandler permissionHandler = PermissionHandler();
  bool status = await permissionHandler.requestLocationPermission();
  if (status) {
    FusedLocationProviderClient locationService = FusedLocationProviderClient();
    Location location = await locationService.getLastLocation();
    return location;
  }
  else {
    return null;
  }
}

这是我在控制台中得到的:

I/cgr.qrmv.QrMobVisPlugin( 5178): Permissions request denied.
W/cgr.qrmv.QrMobVisPlugin( 5178): Starting QR Mobile Vision failed
W/cgr.qrmv.QrMobVisPlugin( 5178): com.github.rmtmckenzie.qrmobilevision.QrReader$Exception: QR reader failed because noPermissions

以及

java.lang.RuntimeException: Failure delivering result ResultInfo{who=@android:requestPermissions:, request=1, result=-1, data=Intent { act=android.content.pm.action.REQUEST_PERMISSIONS (has extras) }} to activity {com.lea24.partyfinder/com.lea24.partyfinder.MainActivity}: java.lang.NullPointerException: Attempt to read from field 'io.flutter.plugin.common.MethodChannel$Result com.github.rmtmckenzie.qrmobilevision.QrMobileVisionPlugin$ReadingInstance.startResult' on a null object reference

为什么这里是QR移动的视觉?我不知道,真的,它发生后,拒绝位置权限.
我做错了什么,该如何改正?

zqry0prt

zqry0prt1#

如果权限一旦被永久拒绝就被拒绝。因此,用户必须从设置中手动更改它。你所能做的就是将用户重定向到设置。在请求权限之前,请确保权限尚未被拒绝,否则它将在没有任何警告的情况下使你的应用崩溃,如下面的代码所示。
下面的代码使用permission_handler请求权限,使用Getx显示无上下文对话框。此函数将返回权限的状态,您可以通过检查是否允许来继续使用它。

PermissionStatus status = await requestLocalStoragePermission();
if (status.isGranted) {
//proceed
}

完整代码

x一个一个一个一个x一个一个二个x

相关问题