123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200 |
- //
- // import 'package:flutter/material.dart';
- // import 'package:permission_handler/permission_handler.dart';
- // import 'package:photo_manager/photo_manager.dart';
- // import 'package:shared/utils/device_utils.dart';
- // import 'package:shared/utils/log_utils.dart';
- // import 'package:widgets/dialog/app_default_dialog.dart';
- // import 'package:widgets/dialog/permission_desc_dialog.dart';
- //
- // import '../dialog/dialog_engine.dart';
- //
- //
- // /**
- // * 动态权限的申请与校验
- // */
- // class PermissionEngine {
- // // 私有构造函数
- // PermissionEngine._privateConstructor();
- //
- // // 单例实例
- // static final PermissionEngine _instance = PermissionEngine._privateConstructor();
- //
- // // 获取单例实例的访问点
- // factory PermissionEngine() {
- // return _instance;
- // }
- //
- // /// 申请多媒体相册权限
- // void requestPhotosPermission(void Function() success) async {
- // //相册的选项
- // if (DeviceUtils.isIOS) {
- // //申请授权
- // final value = await PhotoManager.requestPermissionExtend();
- // if (value.hasAccess) {
- // //已授权
- // Log.d("相册已授权");
- // success();
- // } else if (value == PermissionState.limited) {
- // Log.d("相册访问受限,去设置受限");
- // PhotoManager.presentLimited();
- // } else {
- // Log.d("相册无授权,去设置");
- // DialogEngine.show(
- // widget: AppDefaultDialog(
- // "无相册权限,前往设置",
- // confirmAction: () {
- // PhotoManager.openSetting();
- // },
- // ),
- // );
- // }
- // } else {
- // //Android是否有SD卡权限
- // var status = await Permission.storage.status;
- // late PermissionState ps;
- // if (status.isGranted) {
- // // 已经授权
- // success();
- // } else {
- // // 未授权,则准备发起一次申请
- // var permissionRequestFuture = PhotoManager.requestPermissionExtend();
- //
- // // 延迟500毫秒的Future
- // var delayFuture = Future.delayed(Duration(milliseconds: 500), () => 'delay');
- //
- // // 使用Future.any等待上述两个Future中的任何一个完成
- // var firstCompleted = await Future.any([permissionRequestFuture, delayFuture]);
- //
- // // 判断响应结果
- // if (firstCompleted == 'delay') {
- // Log.d("判断响应结果:1");
- // // 如果是延迟Future完成了,表示500毫秒内没有获得权限响应,显示对话框
- // _showPermissionDialog("“YYBusiness”想访问你的多媒体相册 用于图片上传,图片保存等功能,请允许我获取您的权限");
- // // 再次等待权限请求结果
- // ps = await permissionRequestFuture;
- // DialogEngine.dismiss(tag: "permission");
- // } else {
- // Log.d("判断响应结果:2");
- // // 权限请求已完成,立刻取消对话框展示(如果已经展示的话)
- // DialogEngine.dismiss(tag: "permission");
- // ps = firstCompleted as PermissionState;
- // }
- //
- // if (ps.isAuth) {
- // // 用户授权
- // success();
- // } else {
- // // 权限被拒绝
- // await DialogEngine.show(
- // widget: AppDefaultDialog("请到您的手机设置打开相册的权限", title: "提醒", confirmText: "去设置", confirmAction: () {
- // openAppSettings();
- // }),
- // );
- // }
- // }
- // }
- // }
- //
- // /// 申请相机权限
- // void requestCameraPermission(void Function() success) async {
- // // 获取当前的权限
- // var status = await Permission.camera.status;
- // if (status.isGranted) {
- // // 已经授权
- // success();
- // } else {
- // // 未授权,则准备发起一次申请
- // var permissionRequestFuture = Permission.camera.request();
- //
- // // 延迟500毫秒的Future
- // var delayFuture = Future.delayed(Duration(milliseconds: 500), () => 'delay');
- //
- // // 使用Future.any等待上述两个Future中的任何一个完成
- // var firstCompleted = await Future.any([permissionRequestFuture, delayFuture]);
- //
- // // 判断响应结果
- // if (firstCompleted == 'delay') {
- // // 如果是延迟Future完成了,表示500毫秒内没有获得权限响应,显示对话框
- // _showPermissionDialog("“YYBusiness”申请调用您的相机权限 用于使用拍摄头像,图片上传保存等功能,请允许我获取您的权限");
- // // 再次等待权限请求结果
- // status = await permissionRequestFuture;
- // DialogEngine.dismiss(tag: "permission");
- // } else {
- // // 权限请求已完成,立刻取消对话框展示(如果已经展示的话)
- // DialogEngine.dismiss(tag: "permission");
- // status = firstCompleted as PermissionStatus;
- // }
- //
- // if (status.isGranted) {
- // // 用户授权
- // success();
- // } else {
- // // 权限被拒绝
- // await DialogEngine.show(
- // widget: AppDefaultDialog("请到您的手机设置打开相机的权限", title: "提醒", confirmText: "去设置", confirmAction: () {
- // openAppSettings();
- // }),
- // );
- // }
- // }
- // }
- //
- // /// 校验并申请定位权限
- // Future<bool> requestLocationPermission() async {
- // // 获取当前的权限
- // var status = await Permission.location.status;
- // if (status.isGranted) {
- // // 已经授权
- // return true;
- // } else {
- // // 未授权,则准备发起一次申请
- // var permissionRequestFuture = Permission.location.request();
- //
- // // 延迟500毫秒的Future
- // var delayFuture = Future.delayed(Duration(milliseconds: 500), () => 'delay');
- //
- // // 使用Future.any等待上述两个Future中的任何一个完成
- // var firstCompleted = await Future.any([permissionRequestFuture, delayFuture]);
- //
- // // 判断响应结果
- // if (firstCompleted == 'delay') {
- // // 如果是延迟Future完成了,表示500毫秒内没有获得权限响应,显示对话框
- // _showPermissionDialog("“YYBusiness”想访问您的定位权限获取您的位置来推荐附近的工作");
- // // 再次等待权限请求结果
- // status = await permissionRequestFuture;
- // DialogEngine.dismiss(tag: "permission");
- // } else {
- // Log.d("权限请求已完成,立刻取消对话框展示");
- // // 权限请求已完成,立刻取消对话框展示(如果已经展示的话)
- // DialogEngine.dismiss(tag: "permission");
- // status = firstCompleted as PermissionStatus;
- // }
- //
- // if (status.isGranted) {
- // // 用户授权
- // return true;
- // } else {
- // // 权限被拒绝
- // await DialogEngine.show(
- // widget: AppDefaultDialog("请到您的手机设置打开定位的权限", title: "提醒", confirmText: "去设置", confirmAction: () {
- // openAppSettings();
- // }),
- // );
- // return false;
- // }
- // }
- // }
- //
- // //顶部展示权限声明详情弹窗
- // void _showPermissionDialog(String desc) {
- // DialogEngine.show(
- // clickMaskDismiss: false,
- // backDismiss: true,
- // tag: "permission",
- // maskColor: Colors.transparent,
- // widget: PermissionDescDialog(desc),
- // );
- // }
- // }
|