在 Android 中手动配对蓝牙设备?
Posted
技术标签:
【中文标题】在 Android 中手动配对蓝牙设备?【英文标题】:Manually pairing Bluetooth Decives in Android? 【发布时间】:2011-12-15 13:39:36 【问题描述】:我在读这个 http://developer.android.com/guide/topics/wireless/bluetooth.html#QueryingPairedDevices
这是关于如何配对、连接蓝牙设备的帮助。
我有几个 BT 设备始终处于非发现模式。我知道这些设备的 MAC 和 PIN。 Android Dev 中是否有办法手动将设备添加到 PAIRED 列表中,这样我就可以将连接用作客户端。 我了解此手册是为 V3 编写的。我想我需要在 2.0 上执行此操作; 2.1- 以前有人做过吗?
基本上,我要连接的这些设备是节电模块,我使用预先构建的 BT 模块来监测日光、另一个湿度等。每 3 小时或在中断时,单个电池运行数月。因此,关闭服务器上的 divcory 可以节省大量电量并防止其他人尝试连接并浪费电池。
【问题讨论】:
【参考方案1】:不确定您所说的“手动”是什么意思:您是指 GUI/用户交互中的“手动”,还是“我在自己的应用程序代码中执行”?
一些建议:
如果您可以让您的 BT 设备完全可被发现,您可以这样做:
-
让您的 BT 设备可被发现
让Android搜索并找到设备,然后发起连接
Android 将要求输入 PIN 码以与设备配对;输入 PIN 码。
配对成功后,Android 会存储配对信息以备将来使用,以便您可以
让您的 BT 设备再次隐形。
从那时起,您的应用应该能够随时连接到 BT 设备,而无需进一步的配对操作。
如果说这不是你的选择,也许你想走另一条路:
在当前的 Android 版本中,实现了不同的 API 例程,这些例程既没有记录也没有在普通 SDK 中公开。一种 hack 类型的解决方案可能是通过反射或通过修改您的 SDK 安装来使用其中一些“隐藏”(“@hide”...)API。
但请注意,这始终是一种hack,它可能在具有特定 Android 版本的特定设备上运行,并且可能会在另一台设备和/或任何其他 Android 版本上破坏您的应用.
话虽如此,这里有一些参考:
Example of how to access "hidden" bluetooth API.
然后,查看 android.bluetooth.BluetoothDevice 的源代码,例如here.
在那里,public boolean createBond()...
可以为所欲为。
【讨论】:
以上是关于在 Android 中手动配对蓝牙设备?的主要内容,如果未能解决你的问题,请参考以下文章