import 'package:permission_handler/permission_handler.dart'; import 'interfaces/permission.dart'; class PermissionManager implements IPermissionManager { PermissionManager(); @override Future requestLocationPermission() async { PermissionStatus status = await Permission.location.request(); if (status.isGranted) { // 权限已授予,可以进行相关操作 // 在这里添加你的逻辑代码 return; } else { // 权限被拒绝 if (status.isPermanentlyDenied) { // 用户永久拒绝了权限,你可以引导用户前往设置页面手动授予权限 openAppSettings(); } else { // 用户暂时拒绝了权限 // 在这里可以给用户一些解释,然后再次请求权限 requestLocationPermission(); } return; } } @override Future requestBluetoothConnectPermission() async { PermissionStatus status = await Permission.bluetoothConnect.request(); if (status.isGranted) { // 权限已授予,可以进行相关操作 // 在这里添加你的逻辑代码 return; } else { // 权限被拒绝 if (status.isPermanentlyDenied) { // 用户永久拒绝了权限,你可以引导用户前往设置页面手动授予权限 openAppSettings(); } else { // 用户暂时拒绝了权限 // 在这里可以给用户一些解释,然后再次请求权限 requestBluetoothConnectPermission(); } return; } } @override Future requestBluetoothScanPermission() async { PermissionStatus status = await Permission.bluetoothScan.request(); if (status.isGranted) { // 权限已授予,可以进行相关操作 // 在这里添加你的逻辑代码 return; } else { // 权限被拒绝 if (status.isPermanentlyDenied) { // 用户永久拒绝了权限,你可以引导用户前往设置页面手动授予权限 openAppSettings(); } else { // 用户暂时拒绝了权限 // 在这里可以给用户一些解释,然后再次请求权限 requestBluetoothScanPermission(); } return; } } @override Future requestBluetoothAdvertisePermission() async { PermissionStatus status = await Permission.bluetoothAdvertise.request(); if (status.isGranted) { // 权限已授予,可以进行相关操作 // 在这里添加你的逻辑代码 return; } else { // 权限被拒绝 if (status.isPermanentlyDenied) { // 用户永久拒绝了权限,你可以引导用户前往设置页面手动授予权限 openAppSettings(); } else { // 用户暂时拒绝了权限 // 在这里可以给用户一些解释,然后再次请求权限 requestBluetoothAdvertisePermission(); } return; } } @override Future requestInstallPackagesPermission() async { PermissionStatus status = await Permission.requestInstallPackages.request(); if (status.isGranted) { // 权限已授予,可以进行相关操作 // 在这里添加你的逻辑代码 return; } else { // 权限被拒绝 if (status.isPermanentlyDenied) { // 用户永久拒绝了权限,你可以引导用户前往设置页面手动授予权限 openAppSettings(); } else { // 用户暂时拒绝了权限 // 在这里可以给用户一些解释,然后再次请求权限 requestInstallPackagesPermission(); } return; } } } enum PermissionEnum { //音视频相关 VideoAndVoiceRelevant, //IO相关 IORelevant, //App 需要的所有权限 All, }