Android命令行下藍牙使用


注意:此部分僅僅適用於broadcom 系列藍牙芯片,比如RK903, AP6xxx 系列

通過su 命令切換到root 用戶

1、先確認RFKILL 驅動已經載入

ls /sys/class/rfkill/rfkill0/

假設沒有找到rfkill0 這個文件夾,說明藍牙驅動有問題。

請檢查kernel 中的藍牙選項是否有勾選了

請查看kernel 的信息打印中以“[BT_RFKILL]”打頭的信息。

2、關閉藍牙:

A. 在Settings 界面中關閉藍牙

B. 給藍牙設備下電:

echo 0 > /sys/class/rfkill/rfkill0/state

C. 關閉bluetoothd 和hciattach 這兩個service:

setprop ctl.stop bluetoothd

setprop ctl.stop hciattach

D. 對於Android4.2。還須要關閉進程com.android.bluetooth

busybox killall com.android.bluetooth

3、確定藍牙已經關閉之后。手動給藍牙上電:

echo 1 > /sys/class/rfkill/rfkill0/state

4、下載藍牙固件

Broadcomd 系列芯片使用命令:

RK30:

brcm_patchram_plus --patchram bychip --baudrate 1500000 --enable_lpm --enable_hci /dev/ttyS0 -d &

RK29:

brcm_patchram_plus --patchram bychip --baudrate 1500000 --enable_lpm --enable_hci /dev/ttyS2 -d &

假設藍牙硬件及驅動沒有問題,那么在這步運行完畢后能夠看到打印:

E/bluetooth_brcm( 402): Done setting line discpline

假設沒有出現這行打印。說明藍牙硬件或軟件方面存在問題。

Realtek RTL8723AS 使用命令:

/system/bin/hciattach -n -s 115200 /dev/ttyS0 rtk_h5

5、確認hci0 interface 已經創建:

# hciconfig -a

hci0: Type: BR/EDR Bus: UART

BD Address: 20:00:00:00:01:09 ACL MTU: 1021:7 SCO MTU: 64:1

DOWN

RX bytes:485 acl:0 sco:0 events:18 errors:0

TX bytes:95 acl:0 sco:0 commands:18 errors:0

Features: 0xff 0xff 0x8f 0xfe 0x9b 0xff 0x79 0x87

Packet type: DM1 DM3 DM5 DH1 DH3 DH5 HV1 HV2 HV3

Link policy: RSWITCH HOLD SNIFF PARK

Link mode: SLAVE ACCEPT

6、激活藍牙

# hciconfig hci0 up

7、確認藍牙激活成功

# hcitool dev

Devices:

hci0 20:00:00:00:01:09

8、藍牙激活成功后,能夠開始掃描周圍的藍牙設備

# hcitool scan

Scanning ...

90:C1:15:0F:C2:78 Xperia neo


其他:

1.開放檢測。同意周圍設備檢測到

# hciconfig hciX piscan

2.連接藍牙

# hcitool cc A0:E9:DB:26:36:98

3. 配對

# hcitool auth A0:E9:DB:26:36:98


總結:原理是將bluedroid禁用,使能BlueZ然后就能夠使用基於BluZ的hciconfig/hcitool等等調試工具來做簡單的測試了.嘗試通過這些工具進行后期配對等等實驗,但並沒有功能,事實上到這一步也基本上能夠認定本地的藍牙設備工作正常了,很多其它關於工具的使用見藍牙調試工具hcitool的使用實例.


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM