Apple AirLocation演示应用范围不显示信标

时间:2014-09-27 21:48:23

标签: ibeacon estimote

我有3个Estimote信标,可以通过App store Estimate App查看。

现在我正在尝试运行Apple演示应用程序AirLocation AirLocate

我已将APLDefaults.m文件中的UUID更改为默认的Estimote UUID _supportedProximityUUIDs = @[[[NSUUID alloc] initWithUUIDString:@"B9407F30-F5F8-466E-AFF9-25556B57FE6D"]];

我已启用区域startMonitoringForRegionstackoverflow表示。

但他们没有露面,你见过这个吗?或者我错过了一些具体的估计。

此致

2 个答案:

答案 0 :(得分:29)

问题是AirLocate是为iOS7编写的,而在iOS8中,iBeacons和其他位置操作的权限模型已经改变。为了使程序在从XCode 6编译时在iOS 8上运行,您需要添加在AppDelegate中请求权限的代码。像这样:

if([self.locationManager respondsToSelector:@selector(requestAlwaysAuthorization)]) {
    [self.locationManager requestAlwaysAuthorization];
}

这将提示用户授权包括信标在内的位置操作。 您还需要编辑应用程序的info.plist,并添加一个名为NSLocationAlwaysUsageDescription的新字符串键,其值为“此应用程序需要访问位置服务”,以便操作系统可以提示用户权限。

运行应用程序后,您可以签入设置以查看是否已正确授予此权限。

答案 1 :(得分:2)

我在iOS 9中注意到的另一个问题是校准有时不起作用。似乎是NSNumber转化问题。 APLCalibrationCalculator.m中的以下编辑修复了它: -

  //measuredPower = [[sample valueForKeyPath:@"@avg.rssi"] integerValue];
  measuredPower = [[sample valueForKeyPath:@"@avg.rssi"] intValue];