在Android中手动配对蓝牙设备?

时间:2011-10-26 08:36:00

标签: android bluetooth power-saving

我正在读这篇文章 http://developer.android.com/guide/topics/wireless/bluetooth.html#QueryingPairedDevices

这是关于如何配对,连接到蓝牙设备的帮助。

我有一种情况,我有几个BT设备始终处于非发现模式。我知道这些设备的MAC和PIN。在Android Dev中有一种方法可以手动将设备添加到PAIRED列表中,这样我就可以将connect用作客户端了。 我知道这个maual是为V3分配的。我想我需要在2.0上做到这一点; 2.1-以前是否有人这样做过?

基本上我想要连接的这些设备是省电模块,我使用预先构建的BT模块来监控日光,另一个湿度等等。每3小时或中断并运行一个电池数月。因此,关闭服务器上的divcory可以节省巨大的电力,并防止其他人试图连接和浪费电池。

1 个答案:

答案 0 :(得分:3)

不确定“手动”是什么意思:你是指在GUI /用户交互中“手动”,还是“手动”为“我在自己的应用程序代码中执行”?

但有些建议:

如果你可以让BT设备完全被发现,你可以这样做:

  1. 让您的BT设备可被发现
  2. 让Android搜索并找到该设备,然后启动连接
  3. Android将要求提供与设备配对的PIN码;输入密码。
  4. 配对成功后,Android会存储配对信息以供将来使用,以便您
  5. 让您的BT设备再次隐身。
  6. 从那时起,您的应用应该可以随时连接到BT设备而无需进一步配对操作。

    如果说不适合你,也许你想换个方式:

    在当前的Android版本中,实现了不同的API例程,这些例程既没有记录也没有在普通的SDK中公开。一种黑客解决方案可能是使用这些“隐藏”(“@hide”...)API中的一些,通过反射或修改SDK安装。

    但请注意,这始终是 hack ,它可能适用于具有特定Android版本的特定设备,可能会在其他设备和/或任何其他Android版本上破坏您的应用

    话虽如此,这里有一些参考:

    Example of how to access "hidden" bluetooth API

    然后,看一下android.bluetooth.BluetoothDevice的源代码,例如: here

    在那里,public boolean createBond(){...}可能会做你想要的。