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_easyloading/flutter_easyloading.dart';
|
||||||
import 'package:flutter_screenutil/flutter_screenutil.dart';
|
import 'package:flutter_screenutil/flutter_screenutil.dart';
|
||||||
import 'package:get/get.dart';
|
import 'package:get/get.dart';
|
||||||
|
import 'package:permission_handler/permission_handler.dart';
|
||||||
import 'package:star_lock/appRouters.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/editVideoLog/editVideoLog_state.dart';
|
||||||
import 'package:star_lock/main/lockDetail/videoLog/videoLog/videoLog_entity.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',
|
'images/main/icon_lockDetail_monitoringDownloadVideo.png',
|
||||||
'下载'.tr,
|
'下载'.tr,
|
||||||
Colors.white,
|
Colors.white,
|
||||||
_onDownLoadClick,
|
_onDownLoadClickAndRequestPermission,
|
||||||
)
|
)
|
||||||
: SizedBox.shrink(),
|
: SizedBox.shrink(),
|
||||||
state.isNavLocal.value == false
|
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 {
|
Future<void> _onDownLoadClick() async {
|
||||||
if (state.selectVideoLogList.value.isNotEmpty) {
|
if (state.selectVideoLogList.value.isNotEmpty) {
|
||||||
state.selectVideoLogList.value.forEach((element) {
|
state.selectVideoLogList.value.forEach((element) {
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user