starwork_flutter/lib/base/app_permission.dart
2025-09-03 09:39:06 +08:00

50 lines
1.5 KiB
Dart

import 'package:permission_handler/permission_handler.dart';
class AppPermission {
// 检查权限
static Future<bool> checkPermission({required Permission permission}) async {
var status = await permission.status;
return status == PermissionStatus.granted;
}
// 批量检查权限
static Future<bool> checkPermissions({
required List<Permission> permissions,
}) async {
if (permissions.isEmpty) return false;
Map<Permission, PermissionStatus> statuses = await permissions.request();
for (var status in statuses.values) {
if (status != PermissionStatus.granted) {
return false;
}
}
return true;
}
static Future<bool> requestPermission({
required Permission permission,
}) async {
var status = await permission.request();
return status == PermissionStatus.granted;
}
static Future<bool> 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;
}
}