UIImagePickerController在ios10环境一打开就crash的问题
在之前的系统环境下,UIImagePickerController都可以顺利打开。但是自从手机升级了ios10以后,每次打开相机和照片库都会直接崩溃。
通过google搜索找到StackOverflow的帖子,简单讲就是从ios10开始,调用用户相机和访问照片库都需要先获取使用权限。具体的方法就是在info.plist文件中添加以下两项内容:
获取相机权限:
<key>NSCameraUsageDescription</key>
<string>use camera reason</string>
获取照片库权限:
<key>NSPhotoLibraryUsageDescription</key>
<string>use photos reason</string>
添加这两项以后,在present UIImagePickerController的时候,系统会自动弹窗获取用户许可。
另外,如果直接调用系统默认的相机和照片库,没有进行自定义的话,在用户拒绝提供权限后,相机和照片库界面仍然会打开。但是此时只有取消键是有效的,其它按键点击都没有反应。因此可以保证当用户退出相机和照片库的时候,imagePickerControllerDidCancel的回调方法肯定会被调用到。至于使用自定义界面的,目前尚未测试,尚无法确认。
StackOverflow帖子地址:http://stackoverflow.com/questions/38236723/ios-10-error-access-private-when-using-uiimagepickercontroller/38241350#38241350
PS:感谢google大神和StackOverflow上各位大神!!顺便鄙视下什么都搜不到的百度
UIImagePickerController在ios10环境一打开就crash的问题的更多相关文章
- Mac OS 您需要安装旧 Java SE 6 运行环境才能打开“XXX” 问题
问题描述: 今天在Mac OS上安装一个app的时候提示 “您需要安装旧 Java SE 6 运行环境才能打开 XXX” ,在网上搜索了一下,有说要改app的info.plist文件的,将其中的JVM ...
- 在iPad iOS8环境下打开相冊或者拍照
在iPad下打开相冊或者拍照,假设使用 UIImagePickerController 打开相冊或者拍照,那必需要用到 UIPopoverController 去打开. UIPopoverContro ...
- CentOS桌面环境如何打开终端以及如何将终端加入右键
安装完CentOS的桌面环境后,默认在桌面以及右键是没有打开终端选项的,要想打开终端,可以由以下步骤: 在左上角菜单[Applications]--->[System Tools]---> ...
- iOS10 UIImageWriteToSavedPhotosAlbum程序奔溃crash解决办法
Xcode报错: This app has crashed because it attempted to access privacy-sensitive data without a usage ...
- 零基础 Vue 开发环境搭建 打开运行Vue项目
[相关推荐]IntellIJ IDEA 配置 Vue 支持 打开Vue项目 所需文件 node.js环境(npm包管理器)(node-v8.11.3-x64.msi)(npmV5.6.0) cnpm ...
- thinkPHP5配置nginx环境无法打开(require(): open_basedir restriction in effect. File(/mnt/hgfs/root/tp5/thinkphp/start.php) is not within the allowed path(s)
今天想把玩一下tp5,结果怎么都无法访问,每次都是报500错误,我把错误提示都打开看到下面的错误 require(): open_basedir restriction in effect. File ...
- 枚举当前环境中打开的所有IE
IE程序是属于Shell的一个应用程序,要枚举当前打开的所有IE程序窗口,可以通过ShellWindows集合来打开属于Shell的当前的窗口的集合. 首先添加程序需要的头文件和tlb库 //#imp ...
- Win8环境WPF打开和关闭软键盘
代码如下: public class KeyBoardHelper { #region 键盘控制 /// <summary> /// 显示键盘 /// </summary> p ...
- 关于在eclipse开发环境上打开手机data文件
使用Eclipse开发Android上的数据库应用,需要把数据库文件放到/data/data/mynamespace/database文件夹下,普通手机通过ROOT后经常还是看不到这个文件夹,这时需要 ...
随机推荐
- C#创建文件夹
string path = Server.MapPath("~/DefaultImg/newDir/63/");//获取文件路径 if (!Directory.Exists(pat ...
- 通过dataGridView控件中的checkBox控件对数据库进行批量删除
string id_s = ""; ; i < dataGridView1.Rows.Count; i++) //遍历所有行 { if (dataGridView1.Rows ...
- jquery版本清单
PM> Install-Package jQuery -Version 1.11.2 jQuery 2.1.3 (latest stable) 315444 Wednesday, Decembe ...
- Selenium调用Chrome,Firefox,IE
C#环境下,使用Selenium调用不同的浏览器,可以使用如下方法: IWebDriver driver = null; string Browser =null; if (Browser.Equal ...
- python 自动发邮件 Errno61 Connection refused
此问题是在mac机器上遇到 之前在windows平台运行ok的脚本在mac上报错 后来查了半天 发现是网络接入不对 切换下网络后问题就解决了
- Android进程间的通信之Messenger
Android进程间的通信方式可以通过以下两种方式完成: Android接口定义语言(AIDL) 使用Messenger绑定服务 本文我们将学习使用Messenger绑定服务的方式进行进程间的通信. ...
- 复制本地文件到HDFS本地测试异常
项目中需要将本地文件拷贝到hdfs上,由于本人比较懒,于是使用擅长的Java程序通过Hadoop.FileSystem.CopyFromLocalFile方法来实现. 在本地(Window 7 环境) ...
- 帮助对@Repository注解的理解
定义(来自Martin Fowler的<企业应用架构模式>): Mediates between the domain and data mapping layers using a co ...
- 【如何快速的开发一个完整的iOS直播app】(播放篇)
原文转自:袁峥Seemygo 感谢分享.自我学习 前言 在看这篇之前,如果您还不了解直播原理,请查看上篇文章如何快速的开发一个完整的iOS直播app(原理篇) 开发一款直播app,集成ijkpl ...
- H5学习系列之Communication API
1 .postMessage API 首先介绍一下什么是iframe? 百度百科里这样写道:IFRAME,HTML标签,作用是文档中的文档,或者浮动的框架(FRAME). 我的理解就是网页中的网页. ...