fix:增加视频日志下载时同时申请权限
This commit is contained in:
parent
681b96a478
commit
278e970931
@ -4,6 +4,7 @@ import 'package:flutter/material.dart';
|
||||
import 'package:flutter_easyloading/flutter_easyloading.dart';
|
||||
import 'package:flutter_screenutil/flutter_screenutil.dart';
|
||||
import 'package:get/get.dart';
|
||||
import 'package:permission_handler/permission_handler.dart';
|
||||
import 'package:star_lock/appRouters.dart';
|
||||
import 'package:star_lock/main/lockDetail/videoLog/editVideoLog/editVideoLog_state.dart';
|
||||
import 'package:star_lock/main/lockDetail/videoLog/videoLog/videoLog_entity.dart';
|
||||
@ -190,7 +191,7 @@ class _EditVideoLogPageState extends State<EditVideoLogPage> {
|
||||
'images/main/icon_lockDetail_monitoringDownloadVideo.png',
|
||||
'下载'.tr,
|
||||
Colors.white,
|
||||
_onDownLoadClick,
|
||||
_onDownLoadClickAndRequestPermission,
|
||||
)
|
||||
: SizedBox.shrink(),
|
||||
state.isNavLocal.value == false
|
||||
@ -207,6 +208,31 @@ class _EditVideoLogPageState extends State<EditVideoLogPage> {
|
||||
);
|
||||
}
|
||||
|
||||
Future<void> _onDownLoadClickAndRequestPermission() async {
|
||||
// 检查是否具有存储权限
|
||||
final PermissionStatus status = await Permission.storage.status;
|
||||
|
||||
if (status.isGranted) {
|
||||
// 如果权限已授予,执行下载逻辑
|
||||
await _onDownLoadClick();
|
||||
} else if (status.isDenied || status.isRestricted) {
|
||||
// 如果权限被拒绝或受限,请求权限
|
||||
final PermissionStatus requestResult = await Permission.storage.request();
|
||||
|
||||
if (requestResult.isGranted) {
|
||||
// 权限请求成功后,执行下载逻辑
|
||||
await _onDownLoadClick();
|
||||
} else {
|
||||
// 用户拒绝了权限请求
|
||||
print('用户拒绝了存储权限');
|
||||
}
|
||||
} else if (status.isPermanentlyDenied) {
|
||||
// 如果权限被永久拒绝,提示用户前往设置页面手动开启
|
||||
print('存储权限被永久拒绝,请前往设置页面开启');
|
||||
openAppSettings();
|
||||
}
|
||||
}
|
||||
|
||||
Future<void> _onDownLoadClick() async {
|
||||
if (state.selectVideoLogList.value.isNotEmpty) {
|
||||
state.selectVideoLogList.value.forEach((element) {
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user