前提条件:你使用设备,例如手机,是支持a2dp sink功能的。
怎么来判断是否支持呢?两个步骤:
1、dumpsys package com.android.bluetooth 看一下是否有a2dp sink这个service,如果没有就呵呵了,去改Bluetooth.apk的源码吧,如果支持或者你能改成支持就继续往下走。
Bluetooth.apk的配置文件应该长这个样子哈,否则就是不支持哈
2、蓝牙协议栈是否支持sink功能?
去问蓝牙芯片方案商、去查资料、或者直接去写代码试一下哈
如果不支持,去修改协议栈吧~ 或者换个设备玩一下哎?
切换到sink模式的逻辑:
1、去停掉a2dp service,service值为com.android.bluetooth/com.android.bluetooth.a2dp.A2dpService,
EXTRA_ACTION为action,
ACTION_SERVICE_STATE_CHANGED为com.android.bluetooth.btservice.action.STATE_CHANGED,
state为10
2、启动a2dp sink service,方法同上,将service修改成sink service,state修改成12即可。
好了,完成了,这样你的手机就成了音箱了,哈哈 好简单啊
转变成sink后,你可以继续完善你的功能了:
扫描其他设备,去对设备发起连接等等············
还有一点很重要,去停掉a2dp service前,需要将连接的音箱、耳机先断开连接哈~