【发布时间】:2012-10-02 11:37:30
【问题描述】:
我正在编写一个严重依赖于访问 iPhone 通讯录的应用程序。在 iOS 6.0 中,当应用首次请求通讯录信息时,现在会询问用户是否愿意授予应用访问其联系人的权限。我突然想到,用户可以在不考虑请求的情况下选择“否”,从而使应用程序变得多余。
我想知道是否有一种方法可以首先判断应用已被阻止,然后(在这种情况下)重新请求访问设备联系人。
【问题讨论】:
标签: iphone objective-c ios
我正在编写一个严重依赖于访问 iPhone 通讯录的应用程序。在 iOS 6.0 中,当应用首次请求通讯录信息时,现在会询问用户是否愿意授予应用访问其联系人的权限。我突然想到,用户可以在不考虑请求的情况下选择“否”,从而使应用程序变得多余。
我想知道是否有一种方法可以首先判断应用已被阻止,然后(在这种情况下)重新请求访问设备联系人。
【问题讨论】:
标签: iphone objective-c ios
直接在地址簿的顶部:
https://developer.apple.com/library/ios/#releasenotes/General/RN-iOSSDK-6_0/_index.html
TL;DR:
仅在第一次请求访问时提示用户;对 ABAddressBookCreateWithOptions 的任何后续调用都将使用现有权限。
应用可以使用授权状态 API 来检查它是否可以访问联系人、日历、提醒或照片库。
对于地址簿,调用 ABAddressBookGetAuthorizationStatus 函数
所以不,您不能重新请求。用户必须导航到设置,然后是隐私并为您的应用打开。不过,您可以判断他们是否拒绝了您,这样您就可以在您的应用中提供一组明确的说明,说明如何重新打开它。
【讨论】: