zoukankan      html  css  js  c++  java
  • 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的使用实例.

  • 相关阅读:
    [转]使用@Test 也可以从spring容器中获取依赖注入
    idea/ecipse中使用maven集成springmvc相关jar包时候,出错:java.lang.ClassNotFoundException: org.springframework.web.servlet.DispatcherServlet
    mongodb 权限设置--用户名、密码、端口
    java中import static和import的区别【转】
    python 数字的四舍五入的问题
    数据库——索引(面试、笔试必会)
    Python 中的那些坑总结——持续更新
    python2和python3的区别——持续更新
    常用的排序算法的时间复杂度和空间复杂度
    Libpacp 深度剖析
  • 原文地址:https://www.cnblogs.com/yxysuanfa/p/6872611.html
Copyright © 2011-2022 走看看