permission.dart 987 B

123456789101112131415161718192021222324252627282930313233343536373839
  1. import 'package:permission_handler/permission_handler.dart';
  2. import 'interfaces/permission.dart';
  3. class PermissionManager implements IPermissionManager {
  4. PermissionManager();
  5. @override
  6. Future<void> requestLocationPermission() async {
  7. PermissionStatus status = await Permission.location.request();
  8. if (status.isGranted) {
  9. // 权限已授予,可以进行相关操作
  10. // 在这里添加你的逻辑代码
  11. return;
  12. } else {
  13. // 权限被拒绝
  14. if (status.isPermanentlyDenied) {
  15. // 用户永久拒绝了权限,你可以引导用户前往设置页面手动授予权限
  16. openAppSettings();
  17. } else {
  18. // 用户暂时拒绝了权限
  19. // 在这里可以给用户一些解释,然后再次请求权限
  20. requestLocationPermission();
  21. }
  22. return;
  23. }
  24. }
  25. }
  26. enum PermissionEnum {
  27. //音视频相关
  28. VideoAndVoiceRelevant,
  29. //IO相关
  30. IORelevant,
  31. //App 需要的所有权限
  32. All,
  33. }