Pad本上蓝牙是否可用检测如下:
> >按以下捕获 hcidump的日志 log :
> > 1 打开蓝牙
> > 2 用adb shell 登陆手机或Pad, 并且用 "hcidump -B -w /sdcard/hcilog"
> > 3 开始测试
> > 4 测试完成,停止stop the hcidump 然后分析 "hcilog" file.
C:\Users\kang-ibm>adb shell
$ hcidump -B -w /sdcard/hcilog
hcidump -B -w /sdcard/hcilog
hcidump: permission denied
$ hcidump -B -w /
hcidump -B -w /
hcidump: permission denied
权限不足是因为你们的pad的是user模式的,需要烧了工程模式的image后才能抓到hcidump数据。
另外user模式很多logcat的log也是看不到的。
Hcidump 名词解释
Hcidump不在bluez-utils包里,而是在单独的hcidump包里。主要用来分析捕获和分析HCI数据包,如果使用bluez过程中出了什么问题,用hcidump往往可以发现一些出错的线索,原因。 参数很多,基本上hcidump –X –V 就可以帮你获得详细的经过格式解析的数据包。
HCI是一个抽象的标准的蓝牙通讯接口,在基于HCI协议调用BCCMD时,需要在Bluez已经建立好hci接口的基础上使用。
Hciattach名词解释
Hciattach主要用来初始化蓝牙设备,它的命令格式如下:
hciattach [-n] [-p] [-b] [-t timeout] [-s initial_speed] <tty> <type | id> [speed] [flow|noflow] [bdaddr]
其中最重要的参数就是 type和speed,type决定了要初始化的设备的型号,可以使用 hciattach –l 来列出所支持的设备型号。并不是所有的参数对所有的设备都是适用的,有些设备会忽略一些参数设置,例如:查看hciattach的代码就可以看到,多数设备都忽略bdaddr参数。
Hciattach命令内部的工作步骤是:首先打开制定的tty设备,然后做一些通用的设置,如flow等,然后设置波特率为 initial_speed,然后根据type调用各自的初始化代码,最后将波特率重新设置为speed。所以调用hciattach时,要根据你的实际情况,设置好initial_speed和speed。
对于type BCSP来说,它的初始化代码只做了一件事,就是完成BCSP协议的同步操作,它并不对蓝牙芯片做任何的pskey的设置。同步操作的具体流程和规范可以参考CSR的相关文档: BCSP Link Establishment Protocol