是否有任何变通办法来在JAVA ME中使用L2CAP连接到HID设备(使用移动设备本身的JSR-82规范实现,而不是BlueCove等)?
我知道HID设备通常使用值为0x0011的PSM(协议服务多路复用器)。不幸的是,我发现:
合法的PSM值在(0x1001..0xFFFF)范围内,最低有效字节必须为奇数,所有其他字节必须为偶数。
上面说明了为什么我尝试以下代码时javax.microedition.io.Connector connect()
方法会引发异常:
Connector.open("btl2cap://600010120296:11");
最佳答案
This page建议在JSR-82 1.2中取消了该限制:
合法的PSM值在(0x0005..0xFFFF)范围内,最低有效字节必须为奇数,所有其他字节必须为偶数。如果服务器连接字符串没有psm参数,则实现分配的服务器PSM值必须不少于0x1001。
和评论:
从L2CAP PSM值中删除保留范围,以允许Java应用程序使用“保留”范围中的PSM值使用在L2CAP之上构建的蓝牙协议。
另外,“中断端点”是PSM 0x13(在这里,键盘,鼠标等将发送未经请求的报告,就像它们在控制通道(0x11)上发送以响应GET_REPORT)。
关于java-me - 使用蓝牙L2Cap连接到HID设备,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/12027310/