• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

ios - 即使应用程序在同一个地方,信标的接近范围也会来回变化

[复制链接]
菜鸟教程小白 发表于 2022-12-13 07:17:34 | 显示全部楼层 |阅读模式 打印 上一主题 下一主题

Beacon Proximity range 将接近响应更改为 Near - Immediate - Far,即使 ios 设备保持在同一位置。

当我在接近响应接近时打开 View 时。我来回得到接近响应,近 - 立即然后近。它一次又一次地显示 View

我们如何解决这个问题。是否有任何事件处理程序。

谢谢。



Best Answer-推荐答案


接近度和准确度值似乎很“嘈杂”。它也可能取决于您的环境。水(以及人)会吸收蓝牙使用的频率,因此移动的人可能会产生影响,但我观察到当两台设备都放在我的 table 上时,其距离在 1.2m 和 1.9m 之间。

我认为您将不得不处理应用程序中的噪音。 View 打开后,您应该将其保持打开状态,直到信标“远”(或您获得区域退出)一段时间。如果状态转换回接近或立即,则重置计时器。

你需要使用一些类似下面的代码-

-(void)locationManagerCLLocationManager *)manager
    didRangeBeaconsNSArray *)beacons
           inRegionCLBeaconRegion *)region {

    CLBeacon *beacon=beacons[0];

    switch (beacon.proximity) {

    case CLProximityFar:
        if (self.farTimer==nil) {
            self.farTimer=[NSTimer scheduledTimerWithTimeInterval:30 target:self selectorselector(farTimerFired userInfo:beacon repeats:NO];
        }
    break;

    case CLProximityNear:
    case CLProximityImmediate:
        if (self.farTimer!=nil) {
            [self.farTimer invalidate];
            self.farTimer=nil;
        }
    break;

    case CLProximityUnknown:
         NSLog(@"Beacon proximity is unknown");
    break;
   }
}

-(void) farTimerFiredNSTimer *)timer {
 CLBeacon *beacon=(CLBeacon *)timer.userInfo;
 NSLog(@"Beacon %@ is really far",beacon.proximityUUID.UUIDString);
 self.farTimer=nil;
}

关于ios - 即使应用程序在同一个地方,信标的接近范围也会来回变化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22627580/

回复

使用道具 举报

懒得打字嘛,点击右侧快捷回复 【右侧内容,后台自定义】
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关注0

粉丝2

帖子830918

发布主题
阅读排行 更多
广告位

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap