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();
}