Baseflow / Baseflow/flutter-permission-handler
[Bug]: isPermanentlyDenied on android api 30+
- Dominant language
- Dart
- Stars
- 2.2k
- Forks
- 970
- Avg merge
- 14h 22m
- Merged PRs (30d)
- 2
Description
### Please check the following before submitting a new issue.
- [x] I have searched the [existing issues](https://github.com/baseflow/flutter-permission-handler/issues).
- [x] I have carefully [read the documentation](https://github.com/Baseflow/flutter-permission-handler/blob/main/permission_handler/README.md) and verified I have added the required platform specific configuration.
### Please select affected platform(s)
- [x] Android
- [ ] iOS
- [ ] Windows
### Steps to reproduce
1. Use anrdoid api 30+
2. Request permission
3. Set "Ask every time"
4. Request permission again
### Expected results
with second Permission.camera.request() i expect to get isGranted after for some time after setting "Ask every time"
### Actual results
"Ask every time" is setting isPermanentlyDenied so Permission.camera.request() won't do anything
### Code sample
Code sample
```dart
Future isPermisssionGranted() async {
final sdkInt = _activeSession.sdkInt;
final isPermanentlyDenied = await Permission.camera.isPermanentlyDenied;
final isDenied = await Permission.camera.isDenied;
final isSoftDenied = (isPermanentlyDenied && sdkInt >= 30) || (isDenied && sdkInt < 30);
final isHardDenied = (isPermanentlyDenied && sdkInt < 30) || (isDenied && sdkInt >= 30);
if (isHardDenied) {
return false;
}
if (isSoftDenied) {
final requestIsDenied = await Permission.camera.request().isDenied;
final isPermanentlyDenied = await Permission.camera.isPermanentlyDenied;
if (requestIsDenied || isPermanentlyDenied) {
return false;
}
}
return true;
}
```
### Screenshots or video
Screenshots or video demonstration
[Upload media here]
### Version
12.0.1
### Flutter Doctor output
Doctor output
```console
√] Flutter (Channel stable, 3.32.0, on Microsoft Windows [Version 10.0.19045.6093], locale ru-RU)
[√] Windows Version (Windows 10 Pro 64-bit, 22H2, 2009)
[√] Android toolchain - develop for Android devices (Android SDK version 35.0.0)
[√] Chrome - develop for the web
[√] Android Studio (version 2024.3.2)
[√] VS Code (version 1.102.3)
```
Contributor guide
Assessment
This issue has not been assessed yet.