我正在开发一个应用,需要请求用户的位置权限。 如果用户点击拒绝,我会将他们引导到设置界面,让他们手动打开位置权限。但是当我在设置界面更改了位置权限并返回到应用时,会出现空白屏幕,并且我无法检测到权限状态的更改。 以下是代码:
import 'package:permission_handler/permission_handler.dart';
import 'package:flutter/widgets.dart';
class LocationScreenState extends State<LocationScreen> with WidgetsBindingObserver{
PermissionStatus _status;
@override
void initState() {
super.initState();
WidgetsBinding.instance
.addPostFrameCallback((_) => afterFirstLayout(context));
}
void afterFirstLayout(BuildContext context){
PermissionHandler().requestPermissions([PermissionGroup.locationAlways]).then(__onStatusRequested);
}
void __onStatusRequested(Map<PermissionGroup, PermissionStatus> statuses){
if(statuses != PermissionStatus.granted){
PermissionHandler().openAppSettings();
}else{
_status = PermissionStatus.granted;
}
}