import 'package:flutter/cupertino.dart'; import 'package:new_recook/utils/alert.dart'; import 'package:permission_handler/permission_handler.dart'; import 'headers.dart'; class PermissionTool { static Future haveLocationPermission() async { bool permission = await Permission.location.isGranted; if (!permission) { await Permission.location.request(); permission = await Permission.location.isGranted; } return permission; } static Future haveCameraPermission() async { bool permission = await Permission.camera.isGranted; if (!permission) { await Permission.camera.request(); permission = await Permission.camera.isGranted; } return permission; } static Future haveStoragePermission() async { bool permission = await Permission.storage.isGranted; if (!permission) { await Permission.storage.request(); permission = await Permission.storage.isGranted; } return permission; } static Future haveNotificationPermission() async { bool permission = await Permission.notification.isGranted; if (!permission) { await Permission.notification.request(); permission = await Permission.notification.isGranted; } return permission; } static Future havePhotoPermission() async { bool permission = await Permission.storage.isGranted; if (!permission) { await Permission.storage.request(); permission = await Permission.storage.isGranted; } return permission; } static Future haveAudioPermission() async { bool permission = await Permission.microphone.isGranted; if (!permission) { await Permission.microphone.request(); permission = await Permission.microphone.isGranted; } return permission; } static Future haveContactPermission() async { bool permission = await Permission.contacts.isGranted; if (!permission) { await Permission.contacts.request(); permission = await Permission.contacts.isGranted; } return permission; } static showOpenPermissionDialog(BuildContext context, String message, {Function? open, String? title}) { Alert.show( context, NormalTextDialog( title: title != null ? title : '权限申请', type: NormalTextDialogType.delete, content: message, items: ["取消"], listener: (index) { Alert.dismiss(context); //Toast.showInfo('如果您后续需要接收消息通知,可在设置里打开'); }, deleteItem: "去开启", deleteListener: () async { Alert.dismiss(context); await openAppSettings(); }, )); } }