flutter权限允许访问

Dart 复制代码
import 'package:device_info_plus/device_info_plus.dart';
import 'package:permission_handler/permission_handler.dart';

Future<bool> storagePermission() async {
  final DeviceInfoPlugin info =
      DeviceInfoPlugin(); // import 'package:device_info_plus/device_info_plus.dart';
  final AndroidDeviceInfo androidInfo = await info.androidInfo;

  final int androidVersion = int.parse(androidInfo.version.release);
  bool havePermission = false;
  // Here you can use android api level
  // like android api level 33 = android 13
  // This way you can also find out how to request storage permission

  if (androidVersion >= 13) {
    final request = await [
      // Permission.videos,
      // Permission.photos,
      Permission.audio,
      Permission.storage
      //..... as needed
    ].request(); //import 'package:permission_handler/permission_handler.dart';

    havePermission =
        request.values.every((status) => status == PermissionStatus.granted);
  } else {
    final status = await Permission.storage.request();
    havePermission = status.isGranted;
  }

  if (!havePermission) {
    // if no permission then open app-setting
    await openAppSettings();
  }

  return havePermission;
}

AndroidManifest.xml

XML 复制代码
    <!-- for below android 13-->
    <uses-permission android:name="android.permission.MANAGE_EXTERNAL_STORAGE" tools:ignore="ScopedStorage" />
    <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
    <!-- for above android 13-->
    <uses-permission android:name="android.permission.READ_MEDIA_IMAGES" />
    <uses-permission android:name="android.permission.READ_MEDIA_VIDEO" />
    <uses-permission android:name="android.permission.READ_MEDIA_AUDIO" />
相关推荐
小镇敲码人2 小时前
【深入浅出MySQL】之数据类型介绍
android·数据库·mysql
柯南二号2 小时前
Android 实现一个隐私弹窗
android
wangz767 小时前
kotlin、jetpack compose、Android加速度传感器调用
android·kotlin·jetpack compose·加速度传感器
东坡大表哥7 小时前
【Android】Android签名解析
android·java
每次的天空7 小时前
Android学习总结之GetX库篇(场景运用)
android·javascript·学习
Ya-Jun9 小时前
性能优化实践:渲染性能优化
android·flutter·ios·性能优化
Hzhile9 小时前
攻防世界-php伪协议和文件包含
android·开发语言·安全·web安全·网络安全·php
追随远方11 小时前
详解 FFMPEG 交叉编译 `FLAGS` 和 `INCLUDES` 的作用
android·ffmpeg·myeclipse·音频编解码
布拉德很帅12 小时前
Android ART运行时无缝替换Dalvik虚拟机的过程分析
android·dalvik