When I request permission to access the location, the program crashes. I searched a lot, but I did not find a neat solution. any solution?
the code:
Future<Position> _determinePosition() async {
LocationPermission permission;
permission = await _geolocatorPlatform.checkPermission();
if (permission == LocationPermission.denied) {
permission = await _geolocatorPlatform.requestPermission();
}
if (permission == LocationPermission.deniedForever) {
// Permissions are denied forever, handle appropriately.
return Future.error(Exception(
'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 _geolocatorPlatform.getCurrentPosition();
}
my manifest:
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_BACKGROUND_LOCATION" />
when crash:
D/AndroidRuntime(12834): Shutting down VM E/AndroidRuntime(12834): FATAL EXCEPTION: main E/AndroidRuntime(12834): Process: com.example.tracker, PID: 12834 E/AndroidRuntime(12834): java.lang.RuntimeException: Failure delivering result ResultInfo{who=@android:requestPermissions:, request=109, result=-1, data=Intent { act=android.content.pm.action.REQUEST_PERMISSIONS (has extras) }} to activity {com.example.tracker/com.example.tracker.MainActivity}: java.lang.IllegalStateException: Reply already submitted E/AndroidRuntime(12834): at android.app.ActivityThread.deliverResults(ActivityThread.java:5453) E/AndroidRuntime(12834): at android.app.ActivityThread.handleSendResult(ActivityThread.java:5492) E/AndroidRuntime(12834): at android.app.servertransaction.ActivityResultItem.execute(ActivityResultItem.java:54) E/AndroidRuntime(12834): at android.app.servertransaction.ActivityTransactionItem.execute(ActivityTransactionItem.java:45) E/AndroidRuntime(12834): at android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:135) E/AndroidRuntime(12834): at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:95) E/AndroidRuntime(12834): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2282) E/AndroidRuntime(12834): at android.os.Handler.dispatchMessage(Handler.java:106) E/AndroidRuntime(12834): at android.os.Looper.loopOnce(Looper.java:210) E/AndroidRuntime(12834): at android.os.Looper.loop(Looper.java:299) E/AndroidRuntime(12834): at android.app.ActivityThread.main(ActivityThread.java:8250) E/AndroidRuntime(12834): at java.lang.reflect.Method.invoke(Native Method) E/AndroidRuntime(12834): at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:556) E/AndroidRuntime(12834): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1045) E/AndroidRuntime(12834): Caused by: java.lang.IllegalStateException: Reply already submitted E/AndroidRuntime(12834): at io.flutter.embedding.engine.dart.DartMessenger$Reply.reply(DartMessenger.java:430) E/AndroidRuntime(12834): at io.flutter.plugin.common.MethodChannel$IncomingMethodCallHandler$1.error(MethodChannel.java:272) E/AndroidRuntime(12834): at com.shounakmulay.telephony.sms.SmsMethodCallHandler.execute(SmsMethodCallHandler.kt:169) E/AndroidRuntime(12834): at com.shounakmulay.telephony.sms.SmsMethodCallHandler.onRequestPermissionsResult(SmsMethodCallHandler.kt:378) E/AndroidRuntime(12834): at io.flutter.embedding.engine.FlutterEngineConnectionRegistry$FlutterEngineActivityPluginBinding.onRequestPermissionsResult(FlutterEngineConnectionRegistry.java:777) E/AndroidRuntime(12834): at io.flutter.embedding.engine.FlutterEngineConnectionRegistry.onRequestPermissionsResult(FlutterEngineConnectionRegistry.java:409) E/AndroidRuntime(12834): at io.flutter.embedding.android.FlutterActivityAndFragmentDelegate.onRequestPermissionsResult(FlutterActivityAndFragmentDelegate.java:757) E/AndroidRuntime(12834): at io.flutter.embedding.android.FlutterFragment.onRequestPermissionsResult(FlutterFragment.java:915) E/AndroidRuntime(12834): at io.flutter.embedding.android.FlutterFragmentActivity.onRequestPermissionsResult(FlutterFragmentActivity.java:549) E/AndroidRuntime(12834): at android.app.Activity.dispatchRequestPermissionsResult(Activity.java:8781) E/AndroidRuntime(12834): at android.app.Activity.dispatchActivityResult(Activity.java:8634) E/AndroidRuntime(12834): at android.app.ActivityThread.deliverResults(ActivityThread.java:5446) E/AndroidRuntime(12834): ... 13 more D/OOMEventManagerFK(12834): checkEventAndDumpForJE: 0 I/Process (12834): Sending signal. PID: 12834 SIG: 9 Lost connection to device.