【发布时间】:2014-11-18 06:02:10
【问题描述】:
我正在尝试使用一些花哨的 iBeacons,但一直没有成功,kCLAuthorizationStatusNotDetermined。 根据其他问题,需要将这些键添加到 info.plist (有些问题说一个,另一个说两个)。根据 iBeacons 的一篇文章,我需要 Always 选项。
<key>NSLocationWhenInUseUsageDescription</key>
<string>Nothing to say</string>
<key>NSLocationAlwaysUsageDescription</key>
<string>Permiso para acceder siempre</string>
在 viewDidAppear:
self.locManager = [[CLLocationManager alloc]init];
self.locManager.delegate = self;
[self.locManager requestAlwaysAuthorization];
NSUUID* region1UUID = [[NSUUID alloc]initWithUUIDString:@""]; //ibeacon real UUID between "". Checked it's not nil.
self.beaconRegion = [[CLBeaconRegion alloc]
initWithProximityUUID:proximityUUID
identifier:@"myCoolString"];
self.beaconRegion.notifyEntryStateOnDisplay = YES;
self.beaconRegion.notifyOnEntry = YES;
self.beaconRegion.notifyOnExit = NO;
[self.locManager startMonitoringForRegion:self.beaconRegion];
[self.locManager startRangingBeaconsInRegion:self.beaconRegion];
在执行最后两种方法之一之前,图标不会出现在“设置/隐私/位置”中。用于批准权限的警报视图永远不会出现。 如果我在位置设置中执行手动更改并检查它,它将更改状态,但稍后设置中的位置将删除我的应用程序的“始终”状态,并将其再次留空。后来我检查没有运气
-(void)locationManager:(CLLocationManager *)manager didChangeAuthorizationStatus:(CLAuthorizationStatus)status {
任何想法缺少或错误?谢谢
【问题讨论】:
-
检查隐私 -> 位置服务,并确保您的应用没有禁用它。一旦明确禁用,将不会提示用户。尝试从设备中删除您的应用并重新安装
-
我已尝试重新安装几次。该过程是当应用程序中没有出现对话框时,我转到设置/隐私/位置并检查为“始终”,几秒钟后它会变成完整的紫色图标。然后我回家,回到设置应用程序,瞧,我的应用程序仍然存在,但“总是”又是空白的
-
听起来您的设备出了点问题。你有其他可以测试的设备吗?还是模拟器?
-
我已经在我的手机和 ipad 上测试过,两者的行为都是一样的。也尝试过这种情况:设备已连接。在设置中设置“始终”选项,运行应用程序,然后它会从设置中消失。
-
@Paulw11 我正在尝试找出文档是否解释说,如果给定应用程序明确不允许位置权限,或者自 2014 年以来这种情况发生了变化,则不会显示权限请求
标签: ios core-location ibeacon