如何从特定范围内的灯塔唤醒应用程序?

时间:2017-05-02 08:50:09

标签: swift beacon

可以设置唤醒距离吗?如果可能,如何设置唤醒距离/最小rssi?

我想将最小距离内的唤醒应用程序设置为5米或设置为最小rssi值。现在我只能根据其默认范围从beacon唤醒应用程序来唤醒。

我正在使用Swift 3来开发应用程序。

1 个答案:

答案 0 :(得分:2)

iOS CoreLocation API无法为信标监控的回调设置最小距离。实现类似功能的常用方法是使用Beacon测距。

您可以通过同时启动监控和测距来实现此目的:

 var error = driver.findElement(webdriver.By.id('error-container-text')).getAttribute('innerHTML'):

当首次检测到信标时,监控回调将在后台唤醒您的应用,并且测距将自动开始。然后在测距回调中,只有在满足最小距离条件时才执行逻辑:

locationManager?.startMonitoring(for: region)
locationManager?.startRangingBeacons(in: region)

有一些警告:

  1. 在后台,在区域中首次检测到信标后,您只能获得10秒的测距。因此,如果您在其传输范围的外边缘(例如40米)处检测到背景中的信标,则只有在用户在10秒内进入5米范围内时才会触发自定义逻辑。有lengthen the time of background ranging to 180 seconds方法可以使其更加实用。

  2. 范围回调每秒触发一次。因此,如果您只想执行一次逻辑,则必须设置某种标志以防止它每秒执行一次。