ios - 如何判断两部手机是否彼此靠近?
问题描述
我正在尝试实现一个手机应用程序,如果两个用户在物理世界中彼此靠近,它就会升起一个标志。
我正在寻找一种不需要在用户手机上主动打开应用程序才能做出决定并举旗的解决方案。
这可能吗?也许通过蓝牙,或者通过使用从每部手机上传的 GPS 和时间数据并让服务器确定用户是否足够靠近?
我正在寻找 <20 英尺内的精度。
解决方案
如果没有操作系统支持,我认为您无法做到这一点。Apple 的 Core Location 框架让您可以设置 iPhone 来监听 iBeacon 并唤醒手机并在检测到时在后台启动您的应用程序,但是当手机被锁定并且您的手机被锁定时,您无法让 iPhone广播iBeacon 信号应用程序被暂停。苹果可以,但你不能。
我相信 iBeacons 所基于的底层 BLE 框架具有相同的限制。
Apple 已与公共卫生官员合作,按照您的描述追踪 COVID19 暴露情况。您在手机上安装该应用程序,它使用 BLE 广播 ID 并监听运行该应用程序的其他用户,并记录它看到的其他应用程序用户。如果有人感染了 COVID,有一种方法可以向与感染者密切相关的每个人发送通知。
编辑:
它可能会使用记录的 GPS 数据和服务器可以做到这一点,但它需要电池、网络和计算。(我想它不符合您的要求,因为应用程序必须在后台处于活动状态,并且 GPS 必须始终通电。) GPS 需要大量电力,除非您不断运行 GPS你会错过在你想要的 < 20 英尺附近的遭遇。如果您确实收集了持续的 GPS 数据,则必须将其全部上传,然后进行 BUNCH 批处理以查找邻近命中。您希望进行第一次通过,使用具有相当大距离阈值的粗略计算来丢弃附近没有其他设备的数据,然后在显着较小的数据集上进行第二次通过。即使采用这种方法,也意味着大量的数字运算。
推荐阅读
- angular - 网络提供商出了问题?
- spring-boot - 数据表加载太慢
- autodesk-forge - 使用设计自动化 API 将 Revit 打印到 PDF - 不允许打印机设置、任何其他解决方法或解决方案
- android - JSONObject Azure 函数
- reactjs - 如何将 React 代码转换为 ClojureScript 代码?
- python - 不能声明双数组?
- javascript - 如何将请求 ID 值传递给模态?
- angular - Angular 7 Service 是未定义的异常
- excel - 修改通过 VBA IDE 创建的子和函数体的任何可能性
- swift - 结构作为具有完成功能的函数中的参数 - Swift