【发布时间】:2019-03-18 13:12:16
【问题描述】:
我正在开发一款 Android 应用,该应用需要检测该应用的其他用户是否彼此靠近(比如说在同一个房间或蓝牙范围内)。应用需要能够检测到这一点无需任何用户交互。
- 地理位置不是一个选项,因为这在室内太不准确了。
- 该应用程序只能在公司拥有的手机上运行,并且不会影响隐私。
- 所有设备始终连接到同一个 wifi 网络,并且始终启用 BT。
我的想法是通过定期蓝牙扫描并对照包含所有安装了该应用程序的设备的 MAC 地址列表检查结果来检测用户是否彼此相距很近。 所有设备的 MAC 地址都发送到服务器,然后设备从服务器获取此 MAC 地址列表以与 BT 扫描的结果进行比较。
问题是,BT 和 Google 似乎使用广告/发现模式,其中一台设备充当服务器,一台设备充当客户端。为了使其正常工作,我觉得设备需要始终可被发现。
基于 Google 的 Nearby 或 BT 的实施能否满足我的需求?
是否可以在不被发现的情况下检测附近设备的存在?
由于电池寿命是一个问题(需要能够每天至少工作 8 小时),BLE 是一种选择吗?
【问题讨论】:
-
看来您必须选择是希望设备始终可被发现,还是电池使用寿命长
-
一种选择是在房屋周围放置蓝牙 LE 信标,让手机只扫描这些信标。然后手机不需要被发现或使用 BLE 广告。但随后需要有一个后端来跟踪哪些手机靠近哪些信标。 (手机会将此数据更新到后端。)
标签: android bluetooth bluetooth-lowenergy android-bluetooth