Я хочу использовать свою гарнитуру с hfp и передавать TTS на гарнитуру без использования профиля a2dp.
1) Я запускаю аудио менеджер:
audio = (AudioManager) context.getSystemService(Context.AUDIO_SERVICE);
audio.setMode(AudioManager.MODE_IN_CALL);
2) Сопрягаю устройство с помощью отражения:
Method m = device.getClass().getMethod("createBond", (Class[]) null);
Object invokeResult = m.invoke(device, (Object[]) null);
3) когда я получаю намерение BluetoothDevice.ACTION_BOND_STATE_CHANGED и новое состояние BluetoothDevice.BOND_BONDED, я привязываюсь к гарнитуре, используя интерфейс Android IBluetoothHeadset.
mContext.bindService(new Intent(IBluetoothHeadset.class.getName()), mConnection, Context.BIND_AUTO_CREATE)
4) в реализации onServiceConnected
я вызываю:
boolean connectResult = mService.connect(headset);
5) если connectResult
истинно, я запускаю звук:
audio.setBluetoothScoOn(on);
audio.startBluetoothSco();
Но когда я звоню:
tts.speak(text, TextToSpeech.QUEUE_ADD, null);
звук не перенаправляется на гарнитуру.
Примечание: в этом случае audio.isBluetoothA2dpOn() возвращает false.
Я успешно перенаправляю звук ТОЛЬКО в том случае, если я ранее соединил устройство с помощью системы Android. В этом случае audio.isBluetoothA2dpOn(
) возвращает true.
Есть ли способ использовать TTS с профилем HFP?
Я уже пробовал это решение, но оно не сработало для меня
Спасибо!