я использую
геолокационный: '^ 3.0.1'
handler_handler: '^ 3.0.0'
Теперь я хочу получить текущее местоположение пользователя и показать его на карте, когда пользователь открывает карту.
Итак, мой код:
Future<void> requestPermission() async {
PermissionHandler()
.checkPermissionStatus(PermissionGroup.location)
.then((PermissionStatus permissionStatus) async {
print("Checking Permission " + permissionStatus.toString());
if (permissionStatus == PermissionStatus.granted) {
_getCurrentLocation();
} else {
print("Asking Permission " + permissionStatus.toString());
final List<PermissionGroup> permissions = <PermissionGroup>[
PermissionGroup.locationWhenInUse
];
final Map<PermissionGroup, PermissionStatus> permissionRequestResult =
await PermissionHandler().requestPermissions(permissions);
if (PermissionStatus.granted ==
permissionRequestResult[PermissionGroup.locationWhenInUse]) {
print("Permission Granted " + permissionStatus.toString());
_getCurrentLocation();
}
}
});
}
и разрешения определены в манифесте для android и info.list для IOS.
Теперь проблема в том, что когда я запускаю эту функцию и когда она вызывает функцию requestPermission
, она показывает всплывающее окно с запросом разрешения и
когда приложение I allow the permission
вылетает с ошибкой:
java.lang.RuntimeException: Failure delivering result ResultInfo{who=@android:requestPermissions: ... java.lang.IllegalStateException: Reply already submitted
, а также результат разрешения - Permission.disabled
, хотя я разрешил разрешение в настройках приложения, и в разрешении это показывает, что местоположение разрешено. но я несколько раз пытался открыть приложение, оно показывает Permission.disabled.
и даже если я deny
приложение вылетает с той же ошибкой.
Итак, я пришел к выводу:
Если я allow
или deny
, то происходит сбой, потому что он запрашивает несколько раз, и даже если я разрешаю, результат - Permission.disabled.
Ссылка на видео: https://youtu.be/A1DKkw6u4HI
Может кто-нибудь помочь мне решить эту проблему?
Or please tell me how to take the current location map easily