从android应用程序向任何可用的扬声器(如A2DP、车载扬声器等)传输和播放音频

从android应用程序向任何可用的扬声器(如A2DP、车载扬声器等)传输和播放音频,android,audio-streaming,docking,bluetooth-sco,Android,Audio Streaming,Docking,Bluetooth Sco,从我的android应用程序中,我想将音频流传输到任何可用的扬声器,如A2DP扬声器、docking扬声器或car扬声器 为此,我想使用蓝牙连接和蓝牙连接流 我看到了以下链接 但无论在哪里我都发现了同样的。。i、 e public void setBluetoothA2dpOn (boolean on) This method is deprecated. Do not use. 请指导我如何做到这一点,或者建议是否可以用其他方式做到这一点。。 欢迎提供任何帮助/建议 编辑: 清单中

从我的android应用程序中,我想将音频流传输到任何可用的扬声器,如
A2DP
扬声器、
docking
扬声器或
car
扬声器

为此,我想使用蓝牙连接和蓝牙连接流

我看到了以下链接

但无论在哪里我都发现了同样的。。i、 e

public void setBluetoothA2dpOn (boolean on)

This method is deprecated.
Do not use. 
请指导我如何做到这一点,或者建议是否可以用其他方式做到这一点。。 欢迎提供任何帮助/建议

编辑

清单中的权限:

<uses-permission android:name="android.permission.MODIFY_AUDIO_SETTINGS" />

我向你推荐此链接,请尝试此链接


我觉得这个链接可以帮助你这里是一个蓝牙A2DP在服务中的实现。您可以参考此代码并构建自己的代码


我接受这个答案,但请就此向我解释更多。因为我仍然不清楚如何实现这一点。在使用此文档时,您会遇到哪些问题@userSeven7s:我面临的问题是,我无法检测到其他设备是否也是A2DP,因此缓冲音频时出现问题粘贴一些您尝试使用的代码…@userSeven7s:请参阅编辑的问题您可以分享此示例代码吗?但为此,我必须在清单中添加
@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);
    layout = (RelativeLayout) findViewById(R.id.layout);
    text = (TextView) findViewById(R.id.editText1);
    scoSwitch = (ToggleButton) findViewById(R.id.switch1);
    try {
        mp1 = MediaPlayer.create(this, R.raw.jc_cm);
        mp2 = MediaPlayer.create(this, R.raw.rp);
        amanager = (AudioManager) getSystemService(Context.AUDIO_SERVICE);
        //amanager.setBluetoothA2dpOn(true);
                } catch (IllegalArgumentException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    } catch (IllegalStateException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }
}

public void onSCOswitch(View view){
    if (scoSwitch.isChecked()){
        amanager.setBluetoothScoOn(true);
        amanager.startBluetoothSco();
        Log.d("Bluetooth", "SCO on");
        amanager.setMode(AudioManager.MODE_IN_COMMUNICATION);
    }
    else{
        amanager.stopBluetoothSco();
        amanager.setBluetoothScoOn(false);
        amanager.setBluetoothA2dpOn(true);
        Log.d("Bluetooth", "SCO off");
        amanager.setMode(AudioManager.MODE_NORMAL);
    }
}