linux – 如何判断蓝牙适配器是否支持蓝牙LE(4.0)?
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了linux – 如何判断蓝牙适配器是否支持蓝牙LE(4.0)?,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1236字,纯文字阅读大概需要2分钟。
内容图文
![linux – 如何判断蓝牙适配器是否支持蓝牙LE(4.0)?](/upload/InfoBanner/zyjiaocheng/962/31abb37c993d4a75a80f983ce19829b4.jpg)
我有两个蓝牙适配器,一个旧的内部适配器和一个新的蓝牙4.0适配器.
我正在编写一个使用套接字(PF_BLUETOOTH,SOCK_SEQPACKET,BTPROTO_L2CAP)连接到Linux上的蓝牙LE设备的应用程序.当我用一个sockaddr_l2 {.l2_family = AF_BLUETOOTH,.l2_bdaddr = {…},.l2_cid = L2CAP_CID_ATT,.l2_bdaddr_type = BRADDR_LE_PUBLIC}调用connect()时,连接失败并且errno = 0x38000000 = 939524096未知错误,因为Linux任意选择旧的适配器只支持蓝牙2.1,而不支持蓝牙4.0.解决方案是将套接字绑定到支持蓝牙4.0的适配器的bd_addr.
问题:如何判断哪个适配器是蓝牙4.0适配器? hciconfig没有说明哪一个是使用的;他们都说BR / EDR而不是LE.
$hciconfig
hci1: Type: BR/EDR Bus: USB
BD Address: 00:25:00:F6:97:F0 ACL MTU: 1021:5 SCO MTU: 64:1
UP RUNNING PSCAN
RX bytes:1074 acl:0 sco:0 events:56 errors:0
TX bytes:1462 acl:0 sco:0 commands:56 errors:0
hci0: Type: BR/EDR Bus: USB
BD Address: 00:02:72:D6:A0:BF ACL MTU: 1021:8 SCO MTU: 64:1
UP RUNNING PSCAN
RX bytes:146505 acl:328 sco:0 events:4189 errors:0
TX bytes:6213 acl:215 sco:0 commands:83 errors:0
$modinfo bluetooth | grep ^version:
version: 2.17
$modinfo btusb | grep ^version:
version: 0.6
$lsb_release --description
Description: Ubuntu 14.04.1 LTS
$uname --kernel-release
3.13.0-40-generic
解决方法:
试试:hciconfig hci [0 | 1]版本
内容总结
以上是互联网集市为您收集整理的linux – 如何判断蓝牙适配器是否支持蓝牙LE(4.0)?全部内容,希望文章能够帮你解决linux – 如何判断蓝牙适配器是否支持蓝牙LE(4.0)?所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。