【问题标题】:Apple AirLocation demo App ranging not shows beaconsApple AirLocation 演示应用程序范围不显示信标
【发布时间】:2014-11-22 15:26:51
【问题描述】:

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

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

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

正如stackoverflow 所说,我已启用区域以启动startMonitoringForRegion。

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

问候

【问题讨论】:

    标签: ibeacon estimote


    【解决方案1】:

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

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

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

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

    【讨论】:

    • 我发现我还必须在 AppDelegate 中请求用户对通知的许可,例如这篇文章:stackoverflow.com/a/24161903/1735721 否则您将无法获得与 7 中相同的 UI。必须在查看实际发生的区域通知的代码。虽然它现在可以在 8 中使用,但到目前为止我发现它不能很好地工作......很长一段时间只会收到一次区域通知。
    • 另外值得注意的是,苹果的例子有不正确的通知键; nevan.net/2014/09/core-location-manager-changes-in-ios-8
    【解决方案2】:

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-12-12
      • 2011-05-30
      • 1970-01-01
      • 2013-03-09
      • 2011-11-07
      相关资源
      最近更新 更多