- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我们使用 ESTIMOTE 信标的目标:我们计划在高尔夫球场设置 Estimote 信标。我们的场景是每当玩家到达洞口时,比赛的节奏是什么,信标应该检测到它并通过我们的 iPhone 应用程序响应服务器。在这种情况下,用户不需要打开应用程序,因为手机在他的口袋里,他正在玩。
到目前为止我们做了什么:
我们尝试了以下在互联网或 estimote beacons 论坛上找到的解决方案。
2013 年 11 月的文章 Ibeacon monitoring但在 2016 年 12 月似乎没有什么不同。
我们还尝试通过 CoreLocationManager.startUpdatingLocation 进行背景测距: Here和 Here
这就是我注册信标阵列的方式,目前我们有 3 到 6 个信标。
func loadBeacons() { // Load beacons
self.beacons = getAllbeacons()
self.beaconManager = ESTBeaconManager()
self.beaconManager.delegate = self
self.beaconManager.requestAlwaysAuthorization()
if self.beaconManager.isAuthorizedForMonitoring() == true {
self.rangingBeaconsSetup()
} else {
self.beaconManager.requestAlwaysAuthorization()
}
}
func rangingBeaconsSetup() { // SET UP Ranging beacons
for beacon in self.beacons {
if let beaconRegion = self.beaconRegionFromItem(beacon) {
beaconRegion.notifyEntryStateOnDisplay = true
self.beaconManager.startMonitoring(for: beaconRegion)
self.beaconManager.startRangingBeacons(in: beaconRegion)
}
}
}
func beaconRegionFrom(_ beacon: Beacon) -> CLBeaconRegion? { // GET VALID REGION
let val = 1 << 16
if let uuid = NSUUID(uuidString: beacon.uuid), beacon.major < val && beacon.minor < val {
return CLBeaconRegion(proximityUUID: uuid as UUID, major: CLBeaconMajorValue(beacon.major), minor: CLBeaconMinorValue(beacon.minor), identifier: beacon.deviceName)
}
return nil
}
func beaconManager(_ manager: Any, didDetermineState state: CLRegionState, for region: CLBeaconRegion) { // Monitoring delegate.
if state == .inside {
let notification = UILocalNotification()
notification.alertBody = "By tapping you will be able to check-in"
notification.alertAction = "OK"
notification.fireDate = Date()
application.scheduleLocalNotification(notification)
}
}
以下是我们在相同的 IOS 设备 (OS 10) 上都具有不一致行为时收到的响应。
相关问题:
如果信标向所有手机广播数据,那么每台设备的行为都必须相同,因为我们拥有相同的 IOS 版本、相同的 Iphone 和相同的代码。我们怎样才能得到一致的结果我们的经验是,检测“从几秒到 15 分钟不等,有时根本检测不到”
我们如何才能获得一致且可靠的结果?
最佳答案
从你的问题描述来看,你的核心问题是后台监控回调行为不一致。
理论上,您应该能够获得一个监控回调,在后台唤醒您的应用程序,并让它在后台范围内持续 10 秒(如果您使用 this technique 可延长至 3 分钟)每次信标首次在受监控区域中检测到或每次在受监控区域中停止检测到所有信标时。这将触发 didEnterRegion
或 didExitRegion
回调。
如您所见,有时这些回调不会按预期出现。这有两个主要原因:
您不会收到进入或退出回调,因为区域状态未更改。当 iOS 认为它始终位于 CLBeacon 区域内时,通常会发生这种情况,而应用程序测试人员会短暂地将 iOS 设备从信标附近移除(通过移动手机或关闭信标),然后将其放回该区域。在这种情况下无法获得退出/进入序列通常是由于没有给 iOS 足够的时间来检测它已经退出该区域。在后台,这最多可能需要 15 分钟。 大多数时候,这纯粹是一个测试问题,而不是您的实际用户将面临的问题——测试人员在完成测试方面面临时间压力,因此他们通常不会等待足够长的时间这些测试用例。添加日志记录、通知或其他关于何时发生区域退出的洞察力可以帮助您的测试人员确保他们等待足够长的时间。
您无法快速获得入口回调,因为所有硬件加速槽都已满。为了检测信标并在一秒或一秒内发送 didEnterRegion
回调第二,当检测到感兴趣的信标时,iOS 依靠蓝牙硬件过滤器来唤醒操作系统。问题是这些硬件过滤器是一种稀缺资源,如果它们被首先安装在手机上的其他应用程序耗尽,那么您的应用程序将无法访问它们,这意味着检测时间将回退到软件扫描最多可能需要 15 分钟。没有办法知道您的应用程序是否已被授予访问这些硬件过滤器的权限,甚至在您的手机上卸载并重新安装应用程序也会改变这是否属实,从而导致不一致的结果。可用过滤器的数量未记录,但 some evidence suggests数字是 30,这意味着只有手机上监控的前 30 个 CLBeaconRegions
获得优先访问权。
为了解决测试中的问题 #2,卸载您认为可能正在监视信标的任何其他应用,然后重新安装您的应用。您应该会得到更一致的结果。
当然,你不能让真正的用户卸载其他的信标应用,所以他们可能仍然会面临这些问题。但好消息是,大多数普通用户的手机上不会有很多信标应用程序,因此这种情况发生在真实用户身上的可能性远小于手机上经常有很多信标应用程序的开发人员或测试人员.
关于ios - Estimote 信标无法按预期在 Iphone 上运行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41042428/
我试图在 android 中使用 estimote sdk 查看信标,但没有运气!我可以看到所有的 estimote 信标,但所有其他信标都不起作用(fobo 信标等)我正在使用 fobo 信标的 u
我的想法是从信标获取标题,然后根据该标题向我发送适当的布局。但是突然间它不会识别我的查询。像 String == String 是行不通的。 这是一个 View 的代码,如果你们需要其他东西,我会发布
我正在尝试处理 Estimote/Android-SDK Link Here 我运行了位于 github 上的演示,它为我找到了所有传感器(6 个)。但是距离不正确。我的主要问题是如何改变传感器的功率
我最近购买了 estimote 我已经看过很多演示但无法检测到该设备。 这是我的代码 - (void)viewDidLoad { [super viewDidLoad]; self.p
我使用了信标加速度计,但只有在信标稳定时才会提供加速度计计数数据。例如“沿 5 分钟摇动信标并停止”仅等于 1 个计数。那么,我不能用信标计算步数吗? 谢谢 最佳答案 您可以在发送的链接中找到答案。
我好像不太明白MonitoringListener和RangingListener的区别。 在我的特定用例中,我想不断了解范围内的所有信标,并想知道与它们中的任何一个关联的区域何时退出。 这是我正在谈
我能够加载ios sdk,并在手机上加载应用程序。但是,一旦我单击示例应用程序的3个选项中的1个,该应用程序就会崩溃并显示以下错误: [CLLocationManager startRangingBe
我正在使用 Estimote SDK (3.6.0) 与我的信标进行通信。现在我在某处读到,可以获取 5 Hz 信标的广告包。这仅适用于 Estimote 信标还是也适用于其他供应商的信标?在源代码中
我正在开发一个 Android 应用程序,它使用 GitHub 上提供的 Estimote SDK . 但我仍然无法将我的 Android 设备 (5.0.1) 用作广告商,以便其他使用 Estimo
我正在尝试将 Estimote SDK 集成到 Android 应用程序中。我正在按照 https://github.com/Estimote/Android-SDK 提供的 SDK 说明进行操作.我
我的问题是关于 iOS 版 Estimote SDK。我在配对信标时遇到问题。当使用 ESTBeaconConnection 将信标连接到设备时,为了读取温度,在我与该信标断开连接 (.disconn
我们使用 ESTIMOTE 信标的目标:我们计划在高尔夫球场设置 Estimote 信标。我们的场景是每当玩家到达洞口时,比赛的节奏是什么,信标应该检测到它并通过我们的 iPhone 应用程序响应服务
我目前正在 Android 上开发 iBeacons。 这是我的设备: 估算信标 我问自己一个问题,这就是: 可以在没有第三方应用程序的情况下在 iOS 上推送“推送通知”吗? 澄清一下:我想确定 i
我正在尝试使用 Altbeacon 解析 Estimote Nearable 数据包格式: 我有 IBeacon 的引用: // Apple iBeacon beaconManager.getBeac
我有一个 titanium 应用程序,我想为 android(使用 Estimote)添加 iBeacon 功能。应用程序必须在到达信标区域时推送本地通知。 谁能给些建议?从 android SDK
每次我尝试使用 ConnectToBeacon 方法连接 estimote 信标时,我都会收到此错误: Beacon not in range, has outdated software or is
我已经开发了一个代码来获取附近的 Estimote 列表,我想显示所有 Beacons 信息,所以我使用它的属性,如 major、minor、distance、macaddress 和 proximi
我已下载 Estimote iOS SDK 并在 iPhone 上运行,没有任何错误。然而,当我单击这 3 个示例时,它会转到“选择信标”页面,但似乎没有一个单击。我知道我的 Esimotes 正在工
我正在尝试从 Xamarin iPad 应用程序检测 Estimote iBeacons,但从未触发“DidRangeBeacons”事件。 locationManager = new CLLocat
我只是想获得我的多平台应用程序的一个非常简单的 POC,在跨平台 xamarin 解决方案中查找 ibeacon。我已经了解了 Android 方面的事情,但只是遇到了 iOS 方面的问题。 我在 A
我是一名优秀的程序员,十分优秀!