В Android, как я могу переключаться между проводной гарнитурой и A2DP BT? - PullRequest
2 голосов
/ 07 июня 2011

В моем приложении я позволяю пользователю переключать аудиовыход между встроенным динамиком трубки, устройством громкой связи и стереогарнитурой BT (A2DP).Если подключена проводная гарнитура, невозможно выбрать внутренний динамик или A2DP.В любом случае звук воспроизводится через проводную гарнитуру.Есть ли способ заставить его играть через гарнитуру BT?

Используя API 5 и выше, все методы, которые неявно устанавливают путь аудио, устарели, поэтому я не могу найти способ сделать это,Любая помощь будет оценена.

Спасибо.

1 Ответ

0 голосов
/ 29 мая 2014

если подключена проводная гарнитура + BT-гарнитура, то можно переключиться на внутренний динамик (если вы имеете в виду динамики устройства Android) или на проводную гарнитуру

    AudioManager audioManager = (AudioManager)getApplicationContext().getSystemService(Context.AUDIO_SERVICE);
    audioManager.setMode(AudioManager.MODE_IN_CALL);

    // true - switch to internal speakers; false - to wired headsets
    audioManager.setSpeakerphoneOn(true);


    mMediaPlayer = MediaPlayer.create(AudioTests.this, R.raw.test_cbr);
    mMediaPlayer.start();

Но в этом случае сложно переключиться на BT-гарнитуру. Этот код не помогает переключиться на

    // instead of audioManager.setSpeakerphoneOn(true);
    audioManager.setMode(0);
    audioManager.setBluetoothScoOn(true);
    audioManager.startBluetoothSco();
...