我对iBeacons处于监控模式时有疑问。如果设备距离信标1-2米,我希望与发送给用户的通知进行交互。
曾经有一个叫做的函数:
var radius: CLLocationDistance { get }
现在已弃用,因此无法设置信标区域的范围。 因此无法配置内部,外部,未知的不同状态。大多数远程信标都有超过60米的区域,这使得该地区对您家中的任何互动都很大。
我必须做的是将通过AT命令使用的BLE芯片的功率降低到-4hz。现在跨度大约3-4米,这仍然不是我想要的更好。我已经尝试过锡罐试图降低信号,但它并没有产生太大的影响。甚至在BLE芯片周围镀锡箔。
有没有人找到指定Beacon区域的方法?需要通过此功能触发内部区域:
func locationManager(_ manager: CLLocationManager, didDetermineState state: CLRegionState, for beaconRegion: CLRegion){}
测距模式似乎与监控无关,因此我不能使用接近,否则这将是一个解决方案。
func update(distance: CLProximity) {}
答案 0 :(得分:0)
几点:
您无法设置信标监控的范围。
radius
字段从未设计用于信标监控,而是用于地理围栏,因此从未有效地执行您想要的操作。
降低发射机功率通常是不可靠的,因为如您所见,您无法很好地控制触发距离,并且导致触发发生的距离存在很大差异。
Ranging 确实与监控一起工作,但存在一些限制,因此这是实现目标的最佳方法。
我在对related question的回答中更详细地描述了这项技术。