7

我有 3 个 Estimote 信标,可以在 App store Estimate App 中看到。

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

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

我已启用该区域以startMonitoringForRegion按此stackoverflow所述启动。

但是他们没有出现,你看到了吗?还是我错过了一些特定的 Estimate。

问候

4

2 回答 2

29

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

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

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

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

于 2014-09-28T06:41:35.803 回答
2

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

  //measuredPower = [[sample valueForKeyPath:@"@avg.rssi"] integerValue];
  measuredPower = [[sample valueForKeyPath:@"@avg.rssi"] intValue];
于 2015-10-05T19:40:03.740 回答