【问题标题】:NearbyAPI iOS doesn't detect beacon already in rangeNearbyAPI iOS 没有检测到已经在范围内的信标
【发布时间】:2016-08-24 08:45:28
【问题描述】:

我已经为我的 Objective-c 项目设置了 Google Nearby API 来扫描信标。

当我移动到信标范围内时,应用程序可以正常检测信标,但如果我已经在范围内时启动应用程序,它就不起作用。我必须离开信标并返回。

我没有使用后台扫描。我使用的lib版本是:0.10.0

我的代码是:

[GNSMessageManager setDebugLoggingEnabled:YES];

_messageManager = [[GNSMessageManager alloc] initWithAPIKey:@"..."];

_beaconSubscription = [_messageManager subscriptionWithMessageFoundHandler:^(GNSMessage *message) {
    NSLog(@"beacon found: %@",message);
    ...
} messageLostHandler:^(GNSMessage *message) {
    NSLog(@"beacon lost: %@",message);
    ...
} paramsBlock:^(GNSSubscriptionParams *params) {
    params.deviceTypesToDiscover = kGNSDeviceBLEBeacon;
    params.beaconStrategy = [GNSBeaconStrategy strategyWithParamsBlock:^(GNSBeaconStrategyParams *params) {
        params.includeIBeacons = YES;
    }];
}];

我知道核心位置框架 didEnterRegion / didExitRegion 方法,这些方法仅在跨越信标区域边界时调用并且我可以使用 didDetermineState 方法,但 NearbyAPI 如何在内部使用这些功能以及如何使应用程序在使用它时检测到已经在范围内的信标?

【问题讨论】:

    标签: ios google-nearby


    【解决方案1】:

    这确实是附近消息监控 iBeacon 区域的方式中的一个错误。它使用didEnterRegion/didExitRegion,正如您所说,如果您在扫描开始时已经在某个区域中,则不会调用didEnterRegion

    我已经尝试过使用didDetermineState,并且通过一些工作我现在能够处理这种情况。我们将在下一个错误修复版本中包含此内容。

    与此同时,您可以在测试应用时使用以下技巧来避免该问题:将信标放入金属外壳(法拉第笼)中,并在您的应用开始扫描信标后将其从外壳中取出。这模拟了进入信标区域的运动。我在法拉第笼中使用了一个小型鸡尾酒调酒器,但少量铝箔也可以。

    【讨论】:

    • 我们刚刚发布了带有 iBeacon 扫描修复程序的 Nearby Messages 的 1.1.0 版。如果您有任何问题,请告诉我。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-05-23
    • 2014-02-17
    • 1970-01-01
    • 2021-09-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多