Android Headset Profile Listen To Music

Android 默认使用蓝牙A2DP协议听音乐,使用Headset协议用来接听电话。

早些NOKIA还飞黄腾达的时候,是可以用 Headset协议听音乐的,那么Android是否能实现呢?

肯定是能实现的,这是必然的。

只是如果不考虑其他应用的交互的,这是相当简单的,而且只用调用SDK提供的方法就可以做到。

// sdk version 2.3.3

AudioManager mAudio = (AudioManager)
getSystemService(Context.AUDIO_SERVICE);

//
mAudio.setBluetoothScoOn(true);
mAudio.startBluetoothSco();
mAudio.setMode(AudioManager.MODE_IN_CALL);

// 
mAudio.setBluetoothScoOn(false);
mAudio.stopBluetoothSco();
mAudio.setMode(0);

如果要考虑不跟其他应用状态冲突的话

连接单声道蓝牙耳机有以下状态

应用 普通 响铃 接通 挂断
Phone 不使用 不使用
使用 不使用
Music 使用(听音乐时 不使用
不使用
使用(恢复音乐)
FM 使用(听FM时 不使用
不使用
使用(恢复FM)

注意: 不使用 代表  不使用Headset协议

Phone 自己实现了Headset协议,不建议修改。只有新增Music、FM 的状态使用。

其实可以这样实现,监听Phone 状态改变当前的状态。

下面实现了一个例子,可以在使用的时候打开服务。

现已公开源码。

百度网盘下载(点此下载)

你可能感兴趣的:(android,Headset)