Android APP 存储权限申请详解(Flutter)
前言
自己开发的一个Flutter APP,需要获得手机完全的存储权限,但由于 Android 在高版本中引入了[分区存储](https://linjhs.top/archives/partition-storage-introduction)的概念,所以需要的权限申请比较复杂。
代码实现
在 AndroidManifest.xml 文件中,在 <application> 前加入以下权限,其中前两个是旧版本的权限,第三个是新加入的权限。
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.MANAGE_EXTERNAL_STORAGE" />
在 Flutter 中引入以下依赖:
dependencies:
flutter:
sdk: flutter
permission_handler: ^10.4.3
获取权限的代码如下:
// 引入以下包
import 'package:permission_handler/permission_handler.dart';
// 代码实现
Future<bool> _checkPermission() async {
PermissionStatus status = await Permission.storage.status;
if (status.isDenied) {
// 申请权限
PermissionStatus result = await Permission.storage.request();
if (result.isDenied) {
// 用户拒绝授权
return false;
}
}
status = await Permission.manageExternalStorage.status;
if (status.isDenied) {
// 申请权限
PermissionStatus result =
await Permission.manageExternalStorage.request();
if (result.isDenied) {
// 用户拒绝授权
return false;
}
}
return true;
}
- 感谢你赐予我前进的力量
赞赏者名单
因为你们的支持让我意识到写文章的价值🙏
本文是原创文章,采用 CC BY-NC-ND 4.0 协议,完整转载请注明来自 LinJHS
评论
匿名评论
隐私政策
你无需删除空行,直接评论以获取最佳展示效果

