今天小编和大家分享android如何支持hid设备经验,希望对大家有所帮助。
首先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。
找到定义的INPUT_DEVICE,这就是我们HID设备的Profile,字面意思就是输入设备。找到BluetoothProfile的子类BluetoothInputDevice查看到该类里面的connect方法,入参BluetoothDevice,我们通过步骤三已经得到BluetoothDevice,我们大胆猜想是不是调用这个方法就可以实现连接了呢。
标签:android,hid,设备