summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--AndroidManifest.xml1
-rw-r--r--src/com/android/fmradio/FmMainActivity.java3
-rw-r--r--src/com/android/fmradio/FmService.java13
3 files changed, 16 insertions, 1 deletions
diff --git a/AndroidManifest.xml b/AndroidManifest.xml
index 1b68eba..cebce11 100644
--- a/AndroidManifest.xml
+++ b/AndroidManifest.xml
@@ -29,6 +29,7 @@
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_FM_RADIO" />
<uses-permission android:name="android.permission.ACCESS_MOCK_LOCATION" />
+ <uses-permission android:name="android.permission.BLUETOOTH" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.MODIFY_AUDIO_ROUTING" />
<uses-permission android:name="android.permission.MODIFY_AUDIO_SETTINGS" />
diff --git a/src/com/android/fmradio/FmMainActivity.java b/src/com/android/fmradio/FmMainActivity.java
index ec7baf0..09fca23 100644
--- a/src/com/android/fmradio/FmMainActivity.java
+++ b/src/com/android/fmradio/FmMainActivity.java
@@ -989,7 +989,8 @@ public class FmMainActivity extends Activity implements FmFavoriteEditDialog.Edi
// if power down by other app, should disable station list, over
// menu
mMenuItemStationlList.setEnabled(enabled);
- mMenuItemHeadset.setEnabled(enabled);
+ // If BT headset is in use, need to disable speaker/earphone switching menu.
+ mMenuItemHeadset.setEnabled(enabled && !mService.isBluetoothHeadsetInUse());
}
}
diff --git a/src/com/android/fmradio/FmService.java b/src/com/android/fmradio/FmService.java
index d9ac99e..ca940fd 100644
--- a/src/com/android/fmradio/FmService.java
+++ b/src/com/android/fmradio/FmService.java
@@ -21,6 +21,8 @@ import android.app.Notification;
import android.app.Notification.BigTextStyle;
import android.app.PendingIntent;
import android.app.Service;
+import android.bluetooth.BluetoothAdapter;
+import android.bluetooth.BluetoothProfile;
import android.content.BroadcastReceiver;
import android.content.ContentResolver;
import android.content.ContentValues;
@@ -367,6 +369,17 @@ public class FmService extends Service implements FmRecorder.OnRecorderStateChan
setForceUse(isSpeaker);
}
+ /**
+ * Check if BT headset is connected
+ * @return true if current is playing with BT headset
+ */
+ public boolean isBluetoothHeadsetInUse() {
+ BluetoothAdapter btAdapter = BluetoothAdapter.getDefaultAdapter();
+ int a2dpState = btAdapter.getProfileConnectionState(BluetoothProfile.HEADSET);
+ return (BluetoothProfile.STATE_CONNECTED == a2dpState
+ || BluetoothProfile.STATE_CONNECTING == a2dpState);
+ }
+
private synchronized void startRender() {
Log.d(TAG, "startRender");
mIsRender = true;