diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 79648e4..f9f929e 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -23,6 +23,7 @@ package="de.tadris.fitness"> + diff --git a/app/src/main/java/de/tadris/fitness/announcement/VoiceAnnouncements.java b/app/src/main/java/de/tadris/fitness/announcement/VoiceAnnouncements.java index 5bf90b8..243c28c 100644 --- a/app/src/main/java/de/tadris/fitness/announcement/VoiceAnnouncements.java +++ b/app/src/main/java/de/tadris/fitness/announcement/VoiceAnnouncements.java @@ -19,6 +19,8 @@ package de.tadris.fitness.announcement; +import android.bluetooth.BluetoothAdapter; +import android.bluetooth.BluetoothHeadset; import android.content.Context; import android.media.AudioManager; import android.speech.tts.TextToSpeech; @@ -115,7 +117,7 @@ public class VoiceAnnouncements { // Cannot speak return; } - if (currentMode == AnnouncementMode.HEADPHONES && !audioManager.isWiredHeadsetOn()) { + if (currentMode == AnnouncementMode.HEADPHONES && !isHeadsetOn()) { // Not allowed to speak return; } @@ -123,6 +125,14 @@ public class VoiceAnnouncements { textToSpeech.speak(text, TextToSpeech.QUEUE_ADD, null, "announcement" + (++speakId)); } + private boolean isHeadsetOn() { + BluetoothAdapter mBluetoothAdapter = BluetoothAdapter.getDefaultAdapter(); + boolean bluetoothHeadsetConnected = mBluetoothAdapter != null && mBluetoothAdapter.isEnabled() + && mBluetoothAdapter.getProfileConnectionState(BluetoothHeadset.HEADSET) == BluetoothHeadset.STATE_CONNECTED; + + return audioManager.isWiredHeadsetOn() || bluetoothHeadsetConnected; + } + public void destroy() { textToSpeech.shutdown(); }