This commit is contained in:
2026-06-03 14:07:10 +08:00
parent 3bdece45c3
commit 9eb8d1cc37
118 changed files with 5689 additions and 2 deletions

View File

@@ -0,0 +1,33 @@
import 'package:permission_handler/permission_handler.dart';
class PermissionService {
PermissionService._();
static Future<bool> request(Permission permission) async {
final status = await permission.status;
if (status.isGranted || status.isLimited) return true;
final next = await permission.request();
return next.isGranted || next.isLimited;
}
static Future<Map<Permission, PermissionStatus>> requestAll(
Iterable<Permission> permissions,
) {
return permissions.toList().request();
}
static Future<bool> ensure(
Permission permission, {
bool openSettingsWhenPermanentlyDenied = true,
}) async {
final granted = await request(permission);
if (granted) return true;
final status = await permission.status;
if (openSettingsWhenPermanentlyDenied && status.isPermanentlyDenied) {
await openAppSettings();
}
return false;
}
}