蓝牙发现与连接

问题描述:

因此,为了获得不断更新的RSSI值,我不得不采取这种低效率的方法。我试过使用bluecove 2.1.1,但它给了我一些库错误和运行时错误,我不想再浪费时间处理。开发人员指南将发现定义为扫描附近的可发现设备的过程。蓝牙发现与连接

正在调用方法Intent.getShortExtra(BluetoothDevice.EXTRA_RSSI,Short.MIN_VALUE);在这段时间内可能吗?

或者这两个设备是否必须先建立连接才能使上述方法具有任何意义?我可以先将有问题的设备的MAC地址保存到某个变量mac_addr,将RSSI值保存到某个变量my_rssi,然后每次调用poll()时,运行新扫描,并且其mac地址与mac_addr相匹配的设备是有针对性的,并更新my_rssi字段?

正确或更好,您可以仅在设备发现扫描期间获取RSSI值。我的硕士研究论文是关于这个话题的。这是因为活动连接期间的RSSI值不可靠(由于RSSI值本身的性质),因此Google Android工程师没有通过API公开它。这

优势:

  • 你并不需要一个有效的连接,因此不需要配对
  • 由于没有“微网”参与,您扫描设备的数量可能是无限的

缺点

  • 其他蓝牙设备需要被发现的(本是一个问题,尤其是如果你想找到其中有一个最大曝光率间隔其他Android设备)
  • 连续设备发现扫描是一个沉重的过程 - >costs a lot of battery

的问题然而,随着不断地执行设备发现是它在移动设备上消耗大量电池...

+0

非常感谢Juri!我花了数周的时间试图找到并实现一个有效的方法来实现这个目标,但最终我放弃了。至少对于我在本地大学的Android Deving的宝宝来说,低效率至少比非功能性更好。再次感谢。 –

+0

你想达到什么样的目标? – Juri

+0

基本上它会给出附近的蓝牙设备的相对距离,在特定的阈值距离播放警报。所以我有一切设置,用户界面,按钮,小工具等,播放警报功能,扫描功能,连接等。只是最后一个投票RSSI值仍然有。我认为总体来说,在这最后一步中,有限制条件下的项目(在ANDROID上必须使用BLUETOOT)是有缺陷的。尽管如此,我打算至少有一些功能,但不准确和能源效率低下,为完成工作。 –