Created
July 28, 2022 12:54
-
-
Save BarryDaBee/adf1ce285aea867e41e4289ae6f99380 to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| /// Determine the current position of the device. | |
| /// | |
| /// When the location services are not enabled or permissions | |
| /// are denied the `Future` will return an error. | |
| Future<Position> _determinePosition() async { | |
| bool serviceEnabled; | |
| LocationPermission permission; | |
| // Test if location services are enabled. | |
| serviceEnabled = await Geolocator.isLocationServiceEnabled(); | |
| if (!serviceEnabled) { | |
| // Location services are not enabled don't continue | |
| // accessing the position and request users of the | |
| // App to enable the location services. | |
| return Future.error('Location services are disabled.'); | |
| } | |
| permission = await Geolocator.checkPermission(); | |
| if (permission == LocationPermission.denied) { | |
| permission = await Geolocator.requestPermission(); | |
| if (permission == LocationPermission.denied) { | |
| // Permissions are denied, next time you could try | |
| // requesting permissions again (this is also where | |
| // Android's shouldShowRequestPermissionRationale | |
| // returned true. According to Android guidelines | |
| // your App should show an explanatory UI now. | |
| return Future.error('Location permissions are denied'); | |
| } | |
| } | |
| if (permission == LocationPermission.deniedForever) { | |
| // Permissions are denied forever, handle appropriately. | |
| return Future.error( | |
| 'Location permissions are permanently denied, we cannot request permissions.'); | |
| } | |
| // When we reach here, permissions are granted and we can | |
| // continue accessing the position of the device. | |
| return await Geolocator.getCurrentPosition(); | |
| } |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment