使用Android SDK检测附近移动设备的方法?

Vic*_*Hee 5 android bluetooth discovery cellular-network wifi

我正在考虑开发一款Android应用程序,可以检测附近所有或大多数附近的移动设备(iPhone,Android等).我不需要与这些设备进行交互,只需检测它们,并且要求检测到的设备不需要在其上安装任何特殊/不寻常的应用程序.该应用仅需要适用于典型的美国设备和网络.

我已经考虑过几种方法(以某种方式检测蓝牙,wifi或蜂窝传输/标识符),但我正在寻找特定的实现方法来检测相对较大比例的附近设备.我不确定这些方法中哪些是可行/可行的,或者如何将它们付诸实践......

也许使用蓝牙:有没有办法使用Android SDK来检测不可发现的蓝牙设备(不是在可发现的模式下)?诺基亚开发者网站似乎建议使用服务发现协议(SDP),但我不确定这在Android中是否可能更普遍. 

也许使用细胞塔桅杆切换模拟?好吧,这几乎肯定超出了Android的范围,但是这篇文章表明可能有一种方法可以"模仿单元格切换过程以触发静态电话进行传输.电话响应其ID和身份验证信号......".

Spe*_*ine 6

我想你应该看到这个,它是一篇论文,你不能免费查看它,但在摘要中,它清楚地说明:

对蓝牙设备安全性的担忧引发了"不可发现"模式的规范,该模式阻止在蓝牙设备搜索过程中列出设备.但是,知道其地址或可以发现其地址的设备可以看到不可发现的蓝牙设备.本文讨论了使用增强的强力搜索攻击检测不可发现的蓝牙设备.我们的结果表明,使用多个搜索设备和压缩数据包时序攻击不可发现的蓝牙设备的平均时间可以减少到24小时以内.

但对于Android应用程序,您需要检测时间在几秒钟内而不是少于24小时,因此可能尚未提供实用的解决方案.

  • 还应该注意的是(在我有限的经验中)Android暴露的蓝牙API非常有限,因此您将无法实现任何高级搜索技术.而且我读过NDK没有改善这种情况. (2认同)