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" />
相关推荐
明似水1 小时前
Flutter 包依赖升级指南:让项目保持最新状态
前端·flutter
_一条咸鱼_1 小时前
Android Runtime内存管理子系统启动流程原理(13)
android·面试·android jetpack
法迪2 小时前
Android的uid~package~pid的关系
android
二流小码农2 小时前
鸿蒙开发:hvigorw,一个你不得不去了解的神器
android·ios·harmonyos
雨白2 小时前
详解三种常见布局:LinearLayout、RelativeLayout及FrameLayout
android
墨狂之逸才2 小时前
如何选择合适的abiFilters
android·android studio
宾有为6 小时前
【Android】如何抓取 Android 设备的 UDP/TCP 数据包?
android·tcp/ip·udp·wireshark·抓包·tcp抓包·udp抓包
_一条咸鱼_6 小时前
Android Runtime JNI环境构建与注册过程原理(15)
android·面试·android jetpack
唯有选择6 小时前
flutter_localizations:轻松实现Flutter国际化
flutter
花花鱼6 小时前
Canvas: trying to draw too large(256032000bytes) bitmap.
android