123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123 |
- import 'package:permission_handler/permission_handler.dart';
- import 'interfaces/permission.dart';
- class PermissionManager implements IPermissionManager {
- PermissionManager();
- @override
- Future<void> requestLocationPermission() async {
- PermissionStatus status = await Permission.location.request();
- if (status.isGranted) {
- // 权限已授予,可以进行相关操作
- // 在这里添加你的逻辑代码
- return;
- } else {
- // 权限被拒绝
- if (status.isPermanentlyDenied) {
- // 用户永久拒绝了权限,你可以引导用户前往设置页面手动授予权限
- openAppSettings();
- } else {
- // 用户暂时拒绝了权限
- // 在这里可以给用户一些解释,然后再次请求权限
- requestLocationPermission();
- }
- return;
- }
- }
- @override
- Future<void> requestBluetoothConnectPermission() async {
- PermissionStatus status = await Permission.bluetoothConnect.request();
- if (status.isGranted) {
- // 权限已授予,可以进行相关操作
- // 在这里添加你的逻辑代码
- return;
- } else {
- // 权限被拒绝
- if (status.isPermanentlyDenied) {
- // 用户永久拒绝了权限,你可以引导用户前往设置页面手动授予权限
- openAppSettings();
- } else {
- // 用户暂时拒绝了权限
- // 在这里可以给用户一些解释,然后再次请求权限
- requestBluetoothConnectPermission();
- }
- return;
- }
- }
- @override
- Future<void> requestBluetoothScanPermission() async {
- PermissionStatus status = await Permission.bluetoothScan.request();
- if (status.isGranted) {
- // 权限已授予,可以进行相关操作
- // 在这里添加你的逻辑代码
- return;
- } else {
- // 权限被拒绝
- if (status.isPermanentlyDenied) {
- // 用户永久拒绝了权限,你可以引导用户前往设置页面手动授予权限
- openAppSettings();
- } else {
- // 用户暂时拒绝了权限
- // 在这里可以给用户一些解释,然后再次请求权限
- requestBluetoothScanPermission();
- }
- return;
- }
- }
- @override
- Future<void> requestBluetoothAdvertisePermission() async {
- PermissionStatus status = await Permission.bluetoothAdvertise.request();
- if (status.isGranted) {
- // 权限已授予,可以进行相关操作
- // 在这里添加你的逻辑代码
- return;
- } else {
- // 权限被拒绝
- if (status.isPermanentlyDenied) {
- // 用户永久拒绝了权限,你可以引导用户前往设置页面手动授予权限
- openAppSettings();
- } else {
- // 用户暂时拒绝了权限
- // 在这里可以给用户一些解释,然后再次请求权限
- requestBluetoothAdvertisePermission();
- }
- return;
- }
- }
- @override
- Future<void> 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,
- }
|