Flutter 拍照示例中 , 需要使用 " image_picker " 插件 , 该插件需要针对 Android 和 iOS 做不同的配置 ;
下图是 " image_picker " 插件的首页地址 https://pub.dev/packages/image_picker 内容 , 其中介绍了 Android 和 iOS 应用的配置信息 ;
image_picker 插件地址 : https://pub.dev/packages/image_picker
GitHub 官方提供了供开发者参考插件的 GitHub 仓库中的源码 , 参考官方给出的源码示例 ;
点击右侧的 " Repository ( GitHub ) " 链接 , 可以看到官方的 Fluutter 源码示例 ;
点击该按钮跳转到 https://github.com/flutter/plugins 页面 , 该 GitHub 项目中包含了 Flutter 插件的代码示例 , 在该项目主页 , 有各个插件源码的跳转地址 ;
选择 image_picker , 跳转到 https://github.com/flutter/plugins/tree/master/packages/image_picker 页面 ;
在 image_picker 下就是该 Flutter 插件对应的 Flutter 源码示例 ;
地址 https://github.com/flutter/plugins/tree/master/packages/image_picker/image_picker
在 iOS 应用源码目录的 /ios/Runner/Info.plist 中进行相关配置 ;
这些配置的作用是声明权限 ;
<key>NSCameraUsageDescription</key>
<string>向用户解释使用相机的原因</string>
<key>NSMicrophoneUsageDescription</key>
<string>向用户解释使用麦克风的原因</string>
<key>NSPhotoLibraryUsageDescription</key>
<string>向用户解释使用相册的原因</string>
如果 Android API 小于 29 , 则不需要进行额外配置 ;
如果大于等于 29 , 则需要在 AndroidManifest.xml 清单文件的 application 节点上添加
android:requestLegacyExternalStorage="true"
属性 , 该属性默认为 false
;
参考资料 :
博客源码下载 :