java获取手机通讯录权限_iOS6 中如何获得通讯录访问权限
在iOS 6中,以前工作正常的访问通讯录的iPhone程序可能会出错,现象是程序启动时不提醒用户是否允许程序访问通讯录,同时在“设置->隐私->通讯录”中看不到你的程序。另外,对通讯录进行操作的代码会报类似于以下消息的错误:
Could not compile statement for query (ABCCopyArrayOfAllInstancesOfClassInSourceMatchingProperties):
SELECT ROWID, Name, ExternalIdentifier, Type, ConstraintsPath, ExternalModificationTag, ExternalSyncTag, AccountID, Enabled, SyncData, MeIdentifier, Capabilities FROM ABStore WHERE Enabled = ?;
其原因是iOS 6加强了通讯录访问控制,要求开发人员显式声明需要访问通讯录,方法是调用
方法,具体参见官方文档:
http://developer.apple.com/library/ios/#releasenotes/General/RN-iOSSDK-6_0/index.html
下面是对应的样例代码,一般来讲需要将这段代码放置在程序启动部分,在程序启动过程中提示用户本程序需要访问设备上的通讯录:
ABAddressBookRef addressBook = ABAddressBookCreate();
__block BOOL accessGranted = NO;
if (ABAddressBookRequestAccessWithCompletion != NULL) {
// we're on iOS 6
NSLog(@"on iOS 6 or later, trying to grant access permission");
dispatch_semaphore_t sema = dispatch_semaphore_create(0);
ABAddressBookRequestAccessWithCompletion(addressBook, ^(bool granted, CFErrorRef error) {
accessGranted = granted;
dispatch_semaphore_signal(sema);
});
dispatch_semaphore_wait(sema, DISPATCH_TIME_FOREVER);
dispatch_release(sema);
}
else { // we're on iOS 5 or older
NSLog(@"on iOS 5 or older, it is OK");
accessGranted = YES;
}
if (accessGranted) {
NSLog(@"we got the access right");
}
java获取手机通讯录权限_iOS6 中如何获得通讯录访问权限相关推荐
- java 获取手机归属地_java 获取手机归属地
java 获取手机归属地 [2021-01-30 20:46:44] 简介: php去除nbsp的方法:首先创建一个PHP代码示例文件:然后通过"preg_replace("/( ...
- Java中的四种访问权限:public、protected、包访问、private
所谓访问权限,指的就是本类中的成员变量.成员方法对其他类的可见性 试想一想,当我们修改一个非常庞大的项目时,如果所有变量和方法都是公共权限,那么后端中任何类都有权限去修改它的变量和方法,很有可能修改后 ...
- 2003 文件服务器权限设置,win2003服务器设置文件访问权限
win2003服务器设置文件访问权限 内容精选 换一换 如果您需要对华为云上购买的云手机(Cloud Phone,CPH)资源,给企业中的员工设置不同的访问权限,以达到不同员工之间的权限隔离,您可以使 ...
- java 获取手机联系人_Android 读取手机联系人、拨号、发送短信及长按菜单的操作...
本示例实现了读取手机联系人,拨号.发送短信及长按出现菜单选项的操作↓ 1.Andrid项目结构图↓主要操作图中红色方框内的文件. 2.首先布局代码如下↓ a, main.xml 程序运行的主界面,主要 ...
- java获取手机安装app_Android之——获取手机安装的应用程序
前几篇有关Android的博文中.向大家介绍了几个项目中经常使用的有用功能.那么在这篇博文中.我将向大家介绍怎样获取Android手机中已经安装的手机应用程序,有用过金山手机卫士或者360手机卫士的童 ...
- 通过java获取手机信息_android获取手机信息
玩Android的朋友们进来看看吧! 1.获取手机安装的应用信息(排除系统自带): Java代码: 1 private String getAllApp() { 2 String result = & ...
- linux java 获取路径怎么写_linux中java获取路径的实例代码
linux中java获取路径怎么写? 在Unix/Linux中,路径的分隔采用正斜"/",比如"cd /home/java". 在java的代码开发中 \ 是代 ...
- linux java 获取路径怎么写_linux中java获取路径怎么写?
linux中java获取路径怎么写? 在Unix/Linux中,路径的分隔采用正斜"/",比如"cd /home/java". 在java的代码开发中 是代表转 ...
- 我的理解之JAVA中的4种访问权限
一.Java中有四种访问权限,private.default(一般省略).public.protected. private: Java语言中对访问权限限制的最窄的修饰符,一般称之为"私有的 ...
最新文章
- Apache服务器和tomcat服务器有什么区别?
- shrinkwrap_Java EE 6测试第二部分– Arquillian和ShrinkWrap简介
- CreateThread函数
- git查看之前的提交日志
- python 最小二乘回归 高斯核_「机器学习」一文读懂线性回归、岭回归和Lasso回归...
- ceph查看卷_基于CEPH后端存储搭建Harbor
- C# WinForm TextBox 文本垂直居中实现
- 华为服务器 修改为传统模式,电脑设置成服务器模式
- 百度的AI赛事,正在启蒙一代年轻人
- coj #10066新的开始(最小生成树)
- 响应式布局对图片像素的解决
- 巨星传奇更新招股书:业务绑定歌手周杰伦 上半年营收降24%
- Python:爬山法/随机重启爬山法/允许侧移的爬山法解决八皇后问题
- 3D打印机内网联机打印(1)orangpiPlus安装Octoprint
- Cobbler自动化部署
- 找出词典中的所有的变位词 --By LXW
- 【Codevs 1376】帕秋莉•诺蕾姬
- python开源软件排行榜_10大Python开源项目推荐(Github平均star2135)
- 回顾2018年圆齿轮流量计行业发展现状
- 18.时钟芯片DS1302
热门文章
- Android 双屏异显(兼容android8)
- ISO8583包简介和源代码
- idea使用中项目出现library root
- 在配置SSH免密登录时报错:/usr/bin/ssh-copy-id: ERROR: failed to open ID file '/root/.pub': 没有那个文件或目录
- python制作浏览器
- 做PPT别再傻乎乎的直接插入图片了,手把手教你处理毛玻璃式图片
- 阴阳师服务器维护结界卡,阴阳师近期结界卡断粮 详解原因及解决办法
- 如何用Tableau可视化?
- 谁说NTFS不支持UEFI启动的?启动U盘放不了超过4G的文件怎么办?Server2016 Win10 U盘UEFI启动制作方法
- 机械/电信/生物/化学专业出身,为啥都要转行计算机?