diff --git a/geolocator_android/android/src/main/java/com/baseflow/geolocator/location/NmeaClient.java b/geolocator_android/android/src/main/java/com/baseflow/geolocator/location/NmeaClient.java index 5949b150..d3ad4890 100644 --- a/geolocator_android/android/src/main/java/com/baseflow/geolocator/location/NmeaClient.java +++ b/geolocator_android/android/src/main/java/com/baseflow/geolocator/location/NmeaClient.java @@ -1,8 +1,10 @@ package com.baseflow.geolocator.location; +import android.Manifest; import android.annotation.SuppressLint; import android.annotation.TargetApi; import android.content.Context; +import android.content.pm.PackageManager; import android.location.GnssStatus; import android.location.Location; import android.location.LocationManager; @@ -73,9 +75,12 @@ public void start() { if (locationOptions != null) { if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N && locationManager != null) { - locationManager.addNmeaListener(nmeaMessageListener, null); - locationManager.registerGnssStatusCallback(gnssCallback, null); - listenerAdded = true; + if (context.checkSelfPermission(Manifest.permission.ACCESS_FINE_LOCATION) + == PackageManager.PERMISSION_GRANTED) { + locationManager.addNmeaListener(nmeaMessageListener, null); + locationManager.registerGnssStatusCallback(gnssCallback, null); + listenerAdded = true; + } } } } diff --git a/geolocator_android/pubspec.yaml b/geolocator_android/pubspec.yaml index 2608ce3d..8841c116 100644 --- a/geolocator_android/pubspec.yaml +++ b/geolocator_android/pubspec.yaml @@ -2,7 +2,7 @@ name: geolocator_android description: Geolocation plugin for Flutter. This plugin provides the Android implementation for the geolocator. repository: https://github.com/baseflow/flutter-geolocator/tree/main/geolocator_android issue_tracker: https://github.com/baseflow/flutter-geolocator/issues?q=is%3Aissue+is%3Aopen -version: 4.6.0 +version: 4.6.1 environment: sdk: ">=2.15.0 <4.0.0"