我们如何获得访问flutter应用程序的存储/模拟/0/Android/数据文件夹的权限



我正在使用flutter对视频播放器应用程序进行编码。我正在递归地尝试遍历每个文件夹以获取所有文件->然后创建视频文件的独占列表->然后构建所有视频文件的listView。

但编译器无法迭代并进入"storage/emulated/0/Android/data"文件夹,因此它抛出了"Permission denied"错误。

我如何跳过这些不可访问的文件夹/文件并继续迭代,或者如何获得访问这些文件夹的权限(存储/模拟/0/Android/data(?

我本想得到手机上所有文件的列表。

import 'dart:io';
import 'package:flutter/material.dart';
import 'package:mark_player/custom%20widgets/app_bar.dart';

class newHomeScreen extends StatefulWidget {
const newHomeScreen({ Key? key }) : super(key: key);
@override
State<newHomeScreen> createState() => _newHomeScreenState();
}
class _newHomeScreenState extends State<newHomeScreen> {
Directory dir = Directory('/storage/emulated/0');
@override
void initState() {
List <FileSystemEntity> filesBaby = dir.listSync(recursive: true);
filesKittan(filesBaby);
super.initState();
}
filesKittan(List <FileSystemEntity> files){
for (var i = 0; i < files.length; i++) {
if (files[i].absolute.toString()=='/storage/emulated/0/Android/data') {
continue;
}print(files[i].absolute);
}
}
@override
Widget build(BuildContext context) {
return Scaffold();
}
}

您可以使用permission_handler插件来请求存储权限。

// Request storage permission and check if granted
if (await Permission.storage.request().isGranted) {
// Either the permission was already granted before or the user just granted it.
// Access path
} 

相关内容

  • 没有找到相关文章

最新更新