iOS 通讯录问题
来源:互联网 发布:网络主播唱歌是真的吗 编辑:程序博客网 时间:2024/05/22 13:29
转自http://h7ing.lofter.com/post/db4d2_2de8e2
iOS6.0中获取联系人信息的bug
在iOS6.0之前,通过ABAddressBookCreate()可以直接获取到联系人信息。但之后苹果加强了隐私设置,原来的接口不会提示用户是否允许访问通讯录,只有使用新的接口才行。
比如:
CFErrorRef error;
ABAddressBookRef result = ABAddressBookCreateWithOptions(NULL, &error);
if (!result)
{
NSLog(@"get addressBook failed:%@", error);
CFRelease(error);
}
else
{
// if (ABAddressBookGetAuthorizationStatus() == kABAuthorizationStatusNotDetermined)
// {
ABAddressBookRequestAccessWithCompletion(result, ^(bool granted, CFErrorRef error) {
if (granted)
{
NSLog(@"granted");
}
else
{
NSLog(@"%@", error);
CFRelease(error);
}
});
// }
}
在调用ABAddressBookCreateWithOptions之后,需要再请求一次权限ABAddressBookRequestAccessWithCompletion。
现在的文档只说"The user is only asked for permission the first time you request access. Later calls use the permission granted by the user."。从实际情况来看,这个"the first time"代表从应用装入手机开始,即使删除后重新安装,也不会自动弹出提示了。XD
因为第二次安装后,ABAddressBookCreateWithOptions直接返回NULL(如果删除前拒绝了访问通讯录),error code为1,即kABOperationNotPermittedByUserError,之后的ABAddressBookRequestAccessWithCompletion也就没有了意义,因为这个函数传入的参数必须为"a non-NULL ABAddressBookRef",也就是说,重装后系统再也不会提示用户是否允许应用访问通讯录了。
现在的测试环境为iPod 4, 32GB, iOS 6.0.1
另外,模拟器中是不会弹出隐私权限提示的:
Notes and Known Issues
"No privacy alerts are displayed in iOS Simulator for apps that access Photos, Contacts, Calendar, and Reminders. "
附图:目前的访问通讯录系统提示,貌似有点问题,至少简体中文是这样。
以上是转载内容。这个问题最近在工作的时候遇到的。测试的时候在装入应用的时候,版本是6.1,确实弹筐提示。但是提示的是“相访问您的日历”啊```为!么!B!
而且如上所说删除之后重装也不会在有提示```为!么!B!
后来进一步测试发现。假如在删除的时候,你设定的是允许访问的权限,那么删除之后重新装,也同样是允许访问的权限。由此可推断,应用删除后,并没有删除所有的相关信息,iphone有所保留。so,“第一次”之后再也不弹框了(瞬间``想到了初夜``)
而且在测试过程中如果不给允许访问权限的话,对ABAddressBookRef的操作会出现很多问题(比如,随机性程序挂掉、向通讯录中写入数据有的时候成功有的时候失败```)
所以弹框提示只能我们自己来。通过
ABAddressBookGetAuthorizationStatus()判断
- iOS 通讯录问题
- iOS获取通讯录问题
- iOS 9 通讯录崩溃问题
- iOS 6.0+ 下通讯录访问权限问题
- iOS中通讯录电话号码空格问题
- iOS中通讯录电话号码空格问题
- cordova iOS 调起通讯录崩溃问题
- iOS通讯录
- iOS通讯录
- 通讯录 ios
- iOS通讯录
- iOS通讯录
- 通讯录问题
- IOS通讯录操作总结
- ios 通讯录 中文
- ios 监听通讯录更新
- ios 添加通讯录资料
- ios读取通讯录信息
- SlickGrid 插件开发(3):Dropdownlist 下拉框控件开发
- HDU2150 Pipe
- iOS 竖向tableView上添加横向tableView
- PHP imagick-3.1.0RC2无法安装,提示fatal error: wand/MagickWand.h: No such file or directory 解决方法
- jquery flexgrid使用部分说明
- iOS 通讯录问题
- Apache 设置多个虚拟主机使用一个 IP 地址
- 乐观锁与悲观锁
- 【Android UI设计与开发】第01期:引导界面(一)ViewPager介绍和使用详解
- Raspberry Pi ISP tools for Embedded Pi
- Ubuntu解压缩zip,tar,tar.gz,tar.bz2
- Java(容器)(4322)
- Windows下面使用gVim注意事项
- Linux 进程