最近由于公司项目,正在研究在Android上实现HID device,也就是把Android设备模拟成为蓝牙输入设备。

标准的Bluetooth HID应该是工作在L2CAP上的,Android4.2以下和以上使用的协议栈不一样,一个是来自Broadcom的Bluedroid,一个是Bluez,都没有内含HID device的实现。

考虑在Android的应用层建立L2CAP的链接,在上面做HID,也许可以不必受到协议栈不一样的困扰,尽管可以通过Java的反射将L2CAP socket创建,但问题也存在:

1,Bluedroid协议栈里,禁止了L2CAP和SCO socket的连接和监听,如果一定要做,那就一定要改协议栈

2,ServiceRecord的注册,Android没有提供接口可以注册L2CAP链路上的ServiceRecord,只有RFCOMM的可以,这样一来意味着要从上到下去修改。


第二种思路是在协议栈内修改、增加HID device服务,

目前先研究的是Bluez协议栈,注册ServiceRecord可以成功,遇到的问题是:

收到传入的连接的时候,会自动进入HID server的传入连接流程中,不能正常建立连接。由于HID host端是不会注册HID的UUID的,所以没有机会probe device driver(hid),所以这一块的逻辑我还在考虑应该怎么做。


更多相关文章

  1. ADB连接Android设备的三种方法
  2. 坑中速记整理! 使用 kotlin 写第一个 ReactNative Android(安卓)
  3. Android使用http协议与服务器通信
  4. [置顶] Android(安卓)实现对话框圆角功能
  5. Android(安卓)手机上安装并运行 Ubuntu 12.04
  6. 百度地图android sdk拖拽overlay item
  7. Android上鲜为人知的UI控件介绍和使用
  8. Android开发者应该深入学习的10个开源应用项目
  9. Android连接SQLServer详细教程(数据库+服务器+客户端),并在微软Azur

随机推荐

  1. Android作业:手势识别
  2. Linux | 安装与配置Android(安卓)SDK
  3. 增加android-support-v4.jar
  4. Android(安卓)GLSurfaceView在屏幕旋转后
  5. Android腾讯微薄客户端开发十四:首页menu
  6. Android(安卓)debug summary
  7. 苦逼啊--qt for android 5.4.1 camera
  8. 【Android(安卓)Studio】 Caused by: jav
  9. 【android】AudioManager音量控制
  10. Android中贪吃蛇游戏的学习(四)