31 lines
867 B
Dart
31 lines
867 B
Dart
import 'package:geolocator/geolocator.dart';
|
||
|
||
class LocationAccessService {
|
||
LocationAccessService._();
|
||
|
||
static Future<Position> getCurrentPosition() async {
|
||
final enabled = await Geolocator.isLocationServiceEnabled();
|
||
if (!enabled) {
|
||
throw Exception(
|
||
'Konum servisleri kapalı. Lütfen cihaz ayarlarından açın.');
|
||
}
|
||
|
||
var permission = await Geolocator.checkPermission();
|
||
if (permission == LocationPermission.denied) {
|
||
permission = await Geolocator.requestPermission();
|
||
}
|
||
|
||
if (permission == LocationPermission.denied) {
|
||
throw Exception('Konum izni verilmedi.');
|
||
}
|
||
|
||
if (permission == LocationPermission.deniedForever) {
|
||
throw Exception(
|
||
'Konum izni kalıcı olarak reddedildi. Lütfen cihaz ayarlarından izin verin.',
|
||
);
|
||
}
|
||
|
||
return Geolocator.getCurrentPosition();
|
||
}
|
||
}
|