From e27667250743059f4b8ae92c6164797e26b9f65b Mon Sep 17 00:00:00 2001 From: liyi Date: Tue, 11 Mar 2025 13:57:39 +0800 Subject: [PATCH] =?UTF-8?q?feat:=E4=BF=AE=E5=A4=8DIOS=E7=82=B9=E5=87=BB?= =?UTF-8?q?=E5=A4=B4=E5=83=8F=E9=80=89=E6=8B=A9=E7=9B=B8=E5=86=8C=E6=97=B6?= =?UTF-8?q?=E5=87=BA=E7=8E=B0=E7=9A=84=E5=BC=82=E5=B8=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- lib/widget/permission/permission_dialog.dart | 53 ++++++++++++++------ 1 file changed, 38 insertions(+), 15 deletions(-) diff --git a/lib/widget/permission/permission_dialog.dart b/lib/widget/permission/permission_dialog.dart index a68aaa7d..998eab8c 100755 --- a/lib/widget/permission/permission_dialog.dart +++ b/lib/widget/permission/permission_dialog.dart @@ -69,14 +69,22 @@ class PermissionDialog { CupertinoDialogAction( child: Text('不允许'.tr), onPressed: () { - BuglyTool.uploadExceptionWithEvent(eventStr: '${'申请'.tr}${titles[permission] ?? ''}${'权限'.tr}', detail: "不允许'${'申请'.tr}${titles[permission] ?? ''}${'权限'.tr} titles:$titles'"); + BuglyTool.uploadExceptionWithEvent( + eventStr: + '${'申请'.tr}${titles[permission] ?? ''}${'权限'.tr}', + detail: + "不允许'${'申请'.tr}${titles[permission] ?? ''}${'权限'.tr} titles:$titles'"); Get.back(result: false); }, ), CupertinoDialogAction( child: Text('允许'.tr), onPressed: () { - BuglyTool.uploadExceptionWithEvent(eventStr: '${'申请'.tr}${titles[permission] ?? ''}${'权限'.tr}', detail: "不允许'${'申请'.tr}${titles[permission] ?? ''}${'权限'.tr} titles:$titles'"); + BuglyTool.uploadExceptionWithEvent( + eventStr: + '${'申请'.tr}${titles[permission] ?? ''}${'权限'.tr}', + detail: + "不允许'${'申请'.tr}${titles[permission] ?? ''}${'权限'.tr} titles:$titles'"); Get.back(result: true); }, ), @@ -110,10 +118,15 @@ class PermissionDialog { if (Get.context == null) { return false; } - final AndroidDeviceInfo androidInfo = await DeviceInfoPlugin().androidInfo; - final bool isAndroid33 = - AppPlatform.isAndroid && androidInfo.version.sdkInt >= 33; - + bool isAndroid33 = false; + try { + final AndroidDeviceInfo androidInfo = + await DeviceInfoPlugin().androidInfo; + isAndroid33 = AppPlatform.isAndroid && androidInfo.version.sdkInt >= 33; + } catch (e) { + // 如果获取设备信息失败,默认使用旧版本权限申请方式 + isAndroid33 = false; + } //通用的局部函数 List requestPermission() { List permissions; @@ -148,7 +161,7 @@ class PermissionDialog { bool application = true; const Permission permission = Permission.photos; final List permissions = requestPermission(); - final dynamic cache = await Storage.getString(titles[permission]??''); + final dynamic cache = await Storage.getString(titles[permission] ?? ''); final bool isGranted = await permissionStatus(permissions); if (AppPlatform.isAndroid && !isGranted && cache is! String) { application = await showCupertinoDialog( @@ -187,7 +200,8 @@ class PermissionDialog { } } if (application) { - final Map statuses = await permissions.request(); + final Map statuses = + await permissions.request(); final bool isGranted = await permissionStatus(statuses.keys.toList()); return isGranted; } @@ -241,7 +255,7 @@ class PermissionDialog { bool application = true; const Permission permission = Permission.storage; final List permissions = requestPermission(); - final dynamic cache = await Storage.getString(titles[permission]??''); + final dynamic cache = await Storage.getString(titles[permission] ?? ''); final bool isGranted = await permissionStatus(permissions); if (AppPlatform.isAndroid && !isGranted && cache is! String) { application = await showCupertinoDialog( @@ -270,7 +284,7 @@ class PermissionDialog { }, ); if (application) { - await Storage.setString(titles[permission]??'', titles[permission]); + await Storage.setString(titles[permission] ?? '', titles[permission]); } } else if (cache is String) { final bool isDenied = !(await permissionStatus(permissions)); @@ -280,7 +294,8 @@ class PermissionDialog { } } if (application) { - final Map statuses = await permissions.request(); + final Map statuses = + await permissions.request(); final bool isGranted = await permissionStatus(statuses.keys.toList()); return isGranted; } @@ -295,7 +310,7 @@ class PermissionDialog { } bool application = true; final PermissionStatus status = await permission.status; - final dynamic cache = await Storage.getString(titles[permission]??''); + final dynamic cache = await Storage.getString(titles[permission] ?? ''); if (AppPlatform.isAndroid && !status.isGranted && cache is! String) { application = await showCupertinoDialog( context: Get.context!, @@ -309,14 +324,22 @@ class PermissionDialog { CupertinoDialogAction( child: Text('不允许'.tr), onPressed: () { - BuglyTool.uploadExceptionWithEvent(eventStr: '${'申请'.tr}${titles[permission] ?? ''}${'权限'.tr}', detail: "不允许'${'申请'.tr}${titles[permission] ?? ''}${'权限'.tr} titles:$titles'"); + BuglyTool.uploadExceptionWithEvent( + eventStr: + '${'申请'.tr}${titles[permission] ?? ''}${'权限'.tr}', + detail: + "不允许'${'申请'.tr}${titles[permission] ?? ''}${'权限'.tr} titles:$titles'"); Get.back(result: false); }, ), CupertinoDialogAction( child: Text('允许'.tr), onPressed: () { - BuglyTool.uploadExceptionWithEvent(eventStr: '${'申请'.tr}${titles[permission] ?? ''}${'权限'.tr}', detail: "允许'${'申请'.tr}${titles[permission] ?? ''}${'权限'.tr} titles:$titles'"); + BuglyTool.uploadExceptionWithEvent( + eventStr: + '${'申请'.tr}${titles[permission] ?? ''}${'权限'.tr}', + detail: + "允许'${'申请'.tr}${titles[permission] ?? ''}${'权限'.tr} titles:$titles'"); Get.back(result: true); }, ), @@ -325,7 +348,7 @@ class PermissionDialog { }, ); if (application) { - await Storage.setString(titles[permission]??'', titles[permission]); + await Storage.setString(titles[permission] ?? '', titles[permission]); } } else if (cache is String) { if (status.isDenied) {