import 'package:permission_handler/permission_handler.dart'; class AppPermission { // 检查权限 static Future checkPermission({required Permission permission}) async { var status = await permission.status; return status == PermissionStatus.granted; } // 批量检查权限 static Future checkPermissions({ required List permissions, }) async { if (permissions.isEmpty) return false; Map statuses = await permissions.request(); for (var status in statuses.values) { if (status != PermissionStatus.granted) { return false; } } return true; } static Future requestPermission({ required Permission permission, }) async { var status = await permission.request(); return status == PermissionStatus.granted; } static Future requestNotificationPermission() async { final PermissionStatus status = await Permission.notification.request(); if (status == PermissionStatus.granted) { print("通知权限已授予"); return true; } else if (status == PermissionStatus.denied) { // 第一次被拒绝,可以再次请求 return false; } else if (status.isPermanentlyDenied) { // 用户勾选了“不再提示”或被永久拒绝 print("权限被永久拒绝,跳转到设置页面"); openAppSettings(); // 跳转到应用设置页,手动开启 return false; } return false; } }