我想检测两个iphone何时相互撞击,以便相互发送一些信息。这个任务有这样的API吗?使用ibeacon,我们可以检测到两部手机何时接近,但是当两部手机相距几毫米或更小时,它会缩小到它们的范围吗?
答案 0 :(得分:1)
此处没有特定的API。也没有一个API可以告诉你两个iPhone的接近程度。
你需要做的就是在碰撞时发送某种广播信息。而且,处于从其他设备收听此消息的状态(事先)。
当您检测到碰撞消息时,您可以确定它是否与您自己的碰撞同时发生,并确定它必须是碰撞的手机。此时间阈值可能会有一些误差。
您还可以完全根据iBeacon信号的强度(可能)确定它们在同一区域内。虽然,如果使用了碰撞时间标记,那是否必要?
答案 1 :(得分:1)
如果用户需要在碰撞之前唤醒他们的手机并启动您的应用,那么您有很多选择。您可以使用加速度计来检测凹凸的震动,然后将时间戳通知广播到中央服务器。您可以使用GPS位置来缩小搜索命中范围或进行确认。
如果您希望自己的应用即使设备被锁定也能识别出颠簸,那么您唯一真正的选择就是iBeacons。您可以使用UUID为所有设备创建信标区域,然后使用主要/次要ID来标识各个设备。您可以让每个设备广播它的ID并使用您的UUID监听所有设备。
当您收到其中一个范围内设备的通知时,您会询问后台时间并开始测量这些信标,以及收听加速度计的凸起。如果您在直接范围内检测到撞击和信标,则可以使用中央服务器将其链接起来,甚至使用BLE打开连接。坏消息是,一旦你开始后台处理,你只有3分钟才能恢复睡眠。因此,在像商务会议这样的情况下,运行你的应用程序的几个人可能会在碰到手机之前长时间处于范围内,你可能会错过这种情况。