我正在实现获取华为设备位置的功能,当权限被授予时它可以工作,但当权限被拒绝时应用程序会崩溃。
使用谷歌提供的位置信息从未发生过这种情况。
以下是我的获取位置代码:
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 Mobile Vision?我真的不知道,这是发生在拒绝位置权限后的情况。
我做错了什么,怎样修复呢?