flutter-permission-handler
flutter-permission-handler copied to clipboard
[Bug]: PlatformException.code values are not the same between platforms
Please check the following before submitting a new issue.
- [X] I have searched the existing issues.
- [X] I have carefully read the documentation and verified I have added the required platform specific configuration.
Please select affected platform(s)
- [X] Android
- [X] iOS
- [ ] Windows
Steps to reproduce
- Request permission on iOS while another request is in progress, e.g.
Permission.locationWhenInUse.request() - Observe PlatformException.code is
ERROR_ALREADY_REQUESTING_PERMISSIONS - Request permission on Android while another request is in progress, e.g.
Permission.locationWhenInUse.request() - Observe PlatformException.code is
PermissionHandler.PermissionManager(Ouch!)
Expected results
The PlatformException.code values for the same errors should be the same between platforms.
Actual results
On Android the PlatformException contains some generic error code. Here is an example stack trace:
PlatformException: PlatformException(PermissionHandler.PermissionManager, A request for permissions is already running, please wait for it to finish before doing another request (note that you can request multiple permissions at the same time)., null, null)
#0 StandardMethodCodec.decodeEnvelope (package:flutter/src/services/message_codecs.dart:648)
#1 MethodChannel._invokeMethod (package:flutter/src/services/platform_channel.dart:334)
File "<asynchronous suspension>"
#3 MethodChannelPermissionHandler.requestPermissions (package:permission_handler_platform_interface/src/method_channel/method_channel_permission_handler.dart:80)
File "<asynchronous suspension>"
#5 PermissionActions.request (package:permission_handler/permission_handler.dart:109)
File "<asynchronous suspension>"
Code sample
N/A
Screenshots or video
N/A
Version
11.3.1
Flutter Doctor output
Doctor output
[✓] Flutter (Channel stable, 3.24.2, on macOS 13.6.6 22G630 darwin-arm64, locale en-CA)
• Flutter version 3.24.2 on channel stable at ...
• Upstream repository https://github.com/flutter/flutter.git
• Framework revision 4cf269e36d (6 days ago), 2024-09-03 14:30:00 -0700
• Engine revision a6bd3f1de1
• Dart version 3.5.2
• DevTools version 2.37.2
[✓] Android toolchain - develop for Android devices (Android SDK version 34.0.0)
• Android SDK at .../Library/Android/sdk
• Platform android-34, build-tools 34.0.0
• Java binary at: /Applications/Android Studio.app/Contents/jbr/Contents/Home/bin/java
• Java version OpenJDK Runtime Environment (build 17.0.10+0-17.0.10b1087.21-11572160)
• All Android licenses accepted.
[✓] Xcode - develop for iOS and macOS (Xcode 15.2)
• Xcode at /Applications/Xcode_15.2.app/Contents/Developer
• Build 15C500b
• CocoaPods version 1.15.2
[✓] Chrome - develop for the web
• Chrome at /Applications/Google Chrome.app/Contents/MacOS/Google Chrome
[✓] IntelliJ IDEA Ultimate Edition (version 2024.2.1)
• IntelliJ at /Applications/IntelliJ IDEA.app
• Flutter plugin version 81.1.3
• Dart plugin version 242.21829.3
[✓] Connected device (3 available)
• macOS (desktop) • macos • darwin-arm64 • macOS 13.6.6 22G630 darwin-arm64
• Mac Designed for iPad (desktop) • mac-designed-for-ipad • darwin • macOS 13.6.6 22G630 darwin-arm64
• Chrome (web) • chrome • web-javascript • Google Chrome 128.0.6613.120
[✓] Network resources
• All expected network resources are available.