欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  移动技术

Flutter 使用插件permission_handler的一些问题

程序员文章站 2022-05-01 19:44:53
Flutter 申请权限问Flutter 申请权限问题Flutter 申请权限问题通常flutter 申请权限会使用插件,关于flutter使用插件 permission_handler的一些问题最常见的已知错误是对权限调用.request()方法后,permission_handler没有返回。根据该插件官方描述从3.1.0版开始,该permission_handler插件已切换到Android支持库的AndroidX版本。这意味着您需要确保您的Android项目也已升级以支持Android...

Flutter 申请权限问

Flutter 申请权限问题

通常flutter 申请权限会使用插件,关于flutter使用插件 permission_handler的一些问题
最常见的已知错误是对权限调用.request()方法后,permission_handler没有返回。

根据该插件官方描述

从3.1.0版开始,该permission_handler插件已切换到Android支持库的AndroidX版本。这意味着您需要确保您的Android项目也已升级以支持AndroidX。

  1. 将以下内容添加到“android/gradle.properties”文件中

android.useAndroidX=true // 是否适配AndroidX
android.enableJetifier=true // 是否依赖库

  1. 确保compileSdkVersion将“ android / app / build.gradle”文件中的设置为281

android {
compileSdkVersion 28

}

  1. 确保将所有android.依赖项替换为其对应的AndroidX
    到这一步 插件官方提供的链接打不开,到此各自查找吧(此处我不关心,没弄过这一步,替换过的xml里面权限列表的形式应该是像官网中的一样是替换导入很多包)2

在Flutter 的
android>app>src>main>AndroidManifest.mxl文件中3

<manifest>
	<uses-permission android:name="android.permission.CAMERA"/>  <!--//相机-->
	<uses-permission android:name="android.permission.RECORD_AUDIO"/> <!--//麦克风-->
</manifest>

ios>app>Runner>Info.plist4

<dict>
	<key>NSCameraUsageDescription</key>
	<string>此处自定义填写想要申请权限的话,会在询问申请弹窗中显示</string>
</dict>

以上三步中第二步设置的是打包应用时的兼容版本28用于适配到Android 8.0 (API 等级 26) 开发,这个自行调整

build.gradle文件里将targetSDKVersion设为28以后,也就意味着动态申请权限时会因手机版本的不同,经用户允许授权后才可以安全的调用的api

AndroidManifest.xml里面设置需要申请的api权限列表

compileSdkVersion 告诉 Gradle用哪个 Android SDK 版本编译你的应用。一般要>=targetSdkVersion

buildToolsVersion是 android构建工具的版本,一般buildToolsVersion>=CompileSdkVersion,高版本的build-tools 可以构建低版本编译的android程序

targetSdkVersion 手机app能够适配的系统版本

所以要把app适配的某个系统最好把 compileSdkVersion 和 targetSdkVersion 设置一样

android {
  compileSdkVersion 28
  buildToolsVersion "28.0.0"
  defaultConfig {
        ...
        minSdkVersion 21
        targetSdkVersion 28
        ...
    }
  ...
}

参考以下注释链接


  1. Android6.0运行时权限简介 ↩︎

  2. 记一次Androidx工作适配 ↩︎

  3. Android权限操作之uses-permission详解 ↩︎

  4. flutter ios permission_handle权限动态申请 ↩︎

本文地址:https://blog.csdn.net/WeiLenNuanYang/article/details/112560802

相关标签: flutter