Browse Source

fix(permission): 将权限拒绝阈值从2次调整为5次

调整权限拒绝次数阈值以避免过早触发永久拒绝引导,给用户更多尝试机会
weicu
lxm 1 year ago
parent
commit
3f28c67a46
  1. 10
      lib/core/utils/permission_util.dart

10
lib/core/utils/permission_util.dart

@ -27,7 +27,7 @@ class PermissionUtil {
final _storage = GetStorage();
/// 权限拒绝次数阈值(达到此次数后视为永久拒绝)
static const int _denialThreshold = 2;
static const int _denialThreshold = 5;
/// 获取权限拒绝次数的存储键
String _getDenialCountKey(Permission permission) {
@ -91,7 +91,8 @@ class PermissionUtil {
Logger.d('PermissionUtil', '$permissionName 当前拒绝次数: $denialCount');
// 如果拒绝次数达到阈值或系统返回了 permanentlyDenied,直接视为永久拒绝
if (status.isPermanentlyDenied || denialCount >= _denialThreshold) {
Logger.w('PermissionUtil', '$permissionName 已被系统永久拒绝或自定义计数达到阈值($denialCount),触发设置引导');
Logger.w('PermissionUtil',
'$permissionName 已被系统永久拒绝或自定义计数达到阈值($denialCount),触发设置引导');
await _showPermanentDenialDialog(
permissionName: permissionName,
permanentDenialText: permanentDenialText,
@ -109,8 +110,6 @@ class PermissionUtil {
);
isOverlayShown = true;
final PermissionStatus newStatus = await permissionType.request();
Logger.d('PermissionUtil', '请求后 $permissionName 的新权限状态: $newStatus');
@ -137,7 +136,8 @@ class PermissionUtil {
if (newStatus.isDenied) {
Logger.w('PermissionUtil', '$permissionName 权限被拒绝,增加拒绝计数');
await _storage.write(_getDenialCountKey(permissionType), denialCount + 1);
await _storage.write(
_getDenialCountKey(permissionType), denialCount + 1);
}
// 所有未授权的情况最终都返回 false

Loading…
Cancel
Save