Flutter-权限permission_handler插件配置

一、Android端:

1、确保gradle.properties文件有以下配置

ini 复制代码
android.useAndroidX=true
android.enableJetifier=true

2、确保android/app/build.gradle的 compileSdkVersion到31

二、iOS端:

1、Podfile文件配置

ruby 复制代码
# 权限配置开始
  config.build_settings['GCC_PREPROCESSOR_DEFINITIONS'] ||= [
      '$(inherited)',

      ## 仅允许写入日历的权限(iOS 16 及以下)
      # 'PERMISSION_EVENTS=1',

      ## 允许完全访问日历的权限(iOS 17及以上)
      # 'PERMISSION_EVENTS_FULL_ACCESS=1',

      ## 提醒事项权限
      # 'PERMISSION_REMINDERS=1',

      ## 联系人权限
      # 'PERMISSION_CONTACTS=1',

      ## 相机权限
      # 'PERMISSION_CAMERA=1',

      ## 麦克风权限
      # 'PERMISSION_MICROPHONE=1',

      ## 语音识别权限
      # 'PERMISSION_SPEECH_RECOGNIZER=1',

      ## 照片权限
      # 'PERMISSION_PHOTOS=1',

      ## 位置权限组(包括始终、使用中)
      # 'PERMISSION_LOCATION=1',

      ## 通知权限
      # 'PERMISSION_NOTIFICATIONS=1',

      ## 媒体库权限
      # 'PERMISSION_MEDIA_LIBRARY=1',

      ## 传感器权限
      # 'PERMISSION_SENSORS=1',

      ## 蓝牙权限
      # 'PERMISSION_BLUETOOTH=1',

      ## 应用跟踪透明度权限
      # 'PERMISSION_APP_TRACKING_TRANSPARENCY=1',

      ## 关键警报权限
      # 'PERMISSION_CRITICAL_ALERTS=1'
    ]
    # 权限配置结束
  end

2、Info.plist里的权限要正常添加

  • 日历权限(< iOS 17) NSCalendarsUsageDescription PERMISSION_EVENTS
  • 日历写权限(iOS 17+) NSCalendarsWriteOnlyAccessUsageDescription PERMISSION_EVENTS
  • 日历完全访问权限(iOS 17+) NSCalendarsFullAccessUsageDescription PERMISSION_EVENTS_FULL_ACCESS
  • 提醒事项权限 NSRemindersUsageDescription PERMISSION_REMINDERS
  • 联系人权限 NSContactsUsageDescription PERMISSION_CONTACTS
  • 相机权限 NSCameraUsageDescription PERMISSION_CAMERA
  • 相册权限 NSPhotoLibraryAddUsageDescription -
  • 麦克风权限 NSMicrophoneUsageDescription PERMISSION_MICROPHONE
  • 语音识别权限 NSSpeechRecognitionUsageDescription PERMISSION_SPEECH_RECOGNIZER
  • 照片权限 NSPhotoLibraryUsageDescription PERMISSION_PHOTOS
  • 位置权限 NSLocationUsageDescription, PERMISSION_LOCATION
  • 始终使用位置权限 NSLocationAlwaysAndWhenInUseUsageDescription PERMISSION_NOTIFICATIONS
  • 仅在使用时使用位置权限 NSLocationWhenInUseUsageDescription PERMISSION_NOTIFICATIONS
  • 通知权限 PermissionGroupNotification PERMISSION_NOTIFICATIONS

三、PermissionStatus类型介绍

arduino 复制代码
enum PermissionStatus {
  /// The user denied access to the requested feature.
  denied, //权限被拒绝
 
  /// The user granted access to the requested feature.
  granted, //通过
 
  /// The OS denied access to the requested feature. The user cannot change
  /// this app's status, possibly due to active restrictions such as parental
  /// controls being in place.
  /// *Only supported on iOS.*
  restricted, //IOS
 
  ///User has authorized this application for limited access.
  /// *Only supported on iOS (iOS14+).*
  limited, //IOS
 
  /// The user denied access to the requested feature and selected to never
  /// again show a request for this permission. The user may still change the
  /// permission status in the settings.
  /// *Only supported on Android.*
  permanentlyDenied, //拒绝,且不在提示
}
相关推荐
恋猫de小郭18 分钟前
为什么跨平台框架可以适配鸿蒙,它们的技术原理是什么?
android·前端·flutter
SY.ZHOU33 分钟前
详细讲解Flutter GetX的使用
flutter
sunly_34 分钟前
Flutter:下拉框选择
flutter
明似水36 分钟前
用 Melos 解决 Flutter Monorepo 的依赖冲突:一个真实案例
前端·javascript·flutter
张风捷特烈1 小时前
每日一题 Flutter#5,6 | 两道 Widget 选择题
android·flutter
玖夜Kty12 小时前
国内环境修改 flutter.bat 来设置 flutter 的网络环境
flutter
LinXunFeng13 小时前
Flutter - GetX Helper 助你规范应用 tag
flutter·github·visual studio code
阅文作家助手开发团队_山神1 天前
第五章:Flutter Quill渲染原理深度剖析:Delta到RichText的华丽转身
flutter
未来猫咪花1 天前
# Flutter状态管理对比:view_model vs Riverpod
flutter·ios·android studio
阅文作家助手开发团队_山神2 天前
第四章(下) Delta 到 HTML 转换:块级与行内样式渲染深度解析
flutter