Flutter动态权限方案之permission_handler

  • 发表于
  • flutter

Flutter权限管理

权限管理是APP中较常用的功能,在Flutter中有比较好的包可用:permission_handler

要特别注意的是permission_handler 5与之前的版本有较大更新优化,最重要的是Api结构更简洁直观了,在permission_handler 3中一个简单的权限请求与验证需要写大概7行代码,比如:

而在permission_handler 5中你只需要这样写:

是不是很赞。网上搜到的99%用法全是基于老版本的,写法在最新版中都失效了,在这里我也入坑了。然后去看Api结构才发现,本文也是对那些搜索出来的失效内容的更新。

优化版动态权限

注意,这是网上一个permission_handler 3版本的方法,如果你使用的是最新版permission_handler 5,你需要修改更新一下API结构。

补充:Android6以上系统权限申请注意

android 6.0之上的系统除了添加权限还要在你报错的代码前面添加请求权限的代码,否则你可能会出现即使在Flutter中已经授权的权限,但依然提示android.system.ErrnoException: chmod failed: EACCES (Permission denied)错误。

我在stackoverflow中得知,在 android 6以上系统虽然已经授权了,但在使用权限时还得需要再次请求权限。

解决方法,上面stackoverflow中已经给出了解决方案。