蓝牙dongle热插拔方案

蓝牙dongle热插拔方案


蓝牙部分:
BluetoothManagerService初始化时创建一个线程,在线程中
通过epoll监控/dev/bus/usb设备节点
|
|
V
执行脚本finddevpath,找到在/sys/bus/usb/devices
下生成的节点目录
|
|
V
如果目录下uevent中的DEVNAME和/dev/bus/usb中产生的设备节点相同
|
|
V
读取找到的目录中的idProduct、idVendor
|
|
V
根据vid、pid判断是哪家厂商的芯片(rtk、mtk、bcm)
|
|
V
启动kill_btapk服务,关闭当前蓝牙进程,重新启动蓝牙
(重新通过属性konka.bt.driver加载蓝牙动态库)

Audio部分:
AudioPolicyManagerBase.cpp(hardware\libhardware_legacy\audio)
中initCheck函数初始化一个线程,
检测蓝牙驱动的变化
|
|
V
实现a2dp库的加载(DetectHALLoad_thread)
|
|
V
加载动态库reLoadHwModule

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值