当设备靠近设备运行相同的应用程序时,是否有任何协议注意到,即与用户站在同一站的设备?我可以用iBeacon取这个吗?似乎Apple Friends应用程序显示我订阅的用户的实时位置。是否可以知道接近数据?
答案 0 :(得分:0)
扫描并监控信标区域后,您每秒钟都可以获得靠近您的信标(范围内):
func locationManager(_ manager: CLLocationManager, didRangeBeacons beacons: [CLBeacon], in region: CLBeaconRegion) {
// here you can see every beacon that is in range
}
要查看您与信标之间的距离,请访问beacon.proximity属性,如果您对接收信号强度访问感兴趣,请访问beacon.rssi。
答案 1 :(得分:0)
如果您的意思是检测彼此接近的iOS设备,则可以使用信标进行检测。您可以在某处放置一个信标,当用户靠近信标并且didRangeBeacons
被触发时,将从didRangeBeacons
收到的用户数据(包含它们与信标和信标信息的距离)发送到服务器,在那里进行一些计算,如果信标附近有两个设备,则向它们发送推送通知。
答案 2 :(得分:0)
您可以让您的iOS应用程序自行宣传iBeacon数据包:
Turning an iOS Device into an iBeacon
然后使用Core Location的iBeacon测距/监控API来检测附近的其他此类“iBeacons”(=同一应用的用户)。
另一个选项是MultipeerConnectivity,它的工作方式有点类似。您有一个“广告客户”,可以向附近的任何人(通过蓝牙或Wi-Fi)广播您的设备,以及用于检测此类设备的“浏览器”:
https://developer.apple.com/documentation/multipeerconnectivity
这两个通常都不会在后台工作。您可以在后台检测iBeacon,但不能在后台广告。您可以在后台使用预先建立的MultipeerConnectivity会话,但无法发现和建立新会话。