PS
首先Hid是Human Interface Device的缩写,由其名称可以了解HID设备是直接与人交互的设备,例如键盘、鼠标与游戏手柄等。
我们知道在手机设置--蓝牙功能界面可以手动搜索蓝牙HID设备并进行连接,这篇博客就是介绍如何在android代码中实现HID设备的连接。最后会给出完整的代码工程。一个前提条件是android4.0以上才支持HID设备。
android手机与蓝牙HID设备连接的步骤: 1.开启蓝牙功能; 2.手机搜索蓝牙HID设备 ;3.得到BluetoothDevice,配对HID设备 ;4.连接HID设备 。
了解过蓝牙开发的同学相信前面3个步骤都不是问题,重点介绍第四个步骤,前面的步骤简单列出来。 1.开启蓝牙功能,2.手机搜索蓝牙HID设备,3.配对HID设备 搜索到蓝牙设备后系统会发送这个广播 BluetoothDevice.ACTION_FOUND 通过监听这个广播就可以得到BluetoothDevice //通过广播接收到了BluetoothDevice
4.连接HID设备 。找遍所有公开的api中是没用方法可以直接连接HID设备的,既然手机设置-蓝牙界面可以连接HID设备,说明系统是可以做到的,那是不是把这个方法隐藏了,我们带着这个疑问去源码看看。首先我们找到android/bluetooth/BluetoothProfile.class这个类 为什么是先找到这个类? Bluetooth的一个很重要特性,就是所有的Bluetooth产品都无须实现全部的Bluetooth规范。为了更容易的保持Bluetooth设备之间的兼容,Bluetooth规范中定义了Profile。Profile定义了设备如何实现一种连接或者应用,你可以把Profile理解为连接层或者应用层协议。 所以我们要先确认HID设备属于哪种Profile。
如有不明者,还请咨询专业人士。