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) {