diff options
author | zhuw <zhuw@codeaurora.org> | 2018-03-26 15:45:15 +0800 |
---|---|---|
committer | LuK1337 <priv.luk@gmail.com> | 2019-10-21 21:50:32 +0200 |
commit | 76459f16219514fd973ed169962095221dc15adf (patch) | |
tree | ad6bb1362266b267e23b74e9f34e049782066597 | |
parent | 1bbe43b15b209c894a92be338685082bdd5799c6 (diff) | |
download | android_packages_apps_Gallery2-76459f16219514fd973ed169962095221dc15adf.tar.gz android_packages_apps_Gallery2-76459f16219514fd973ed169962095221dc15adf.tar.bz2 android_packages_apps_Gallery2-76459f16219514fd973ed169962095221dc15adf.zip |
Fix can't enable speaker with bluetooth headset
config value is 10 when using bt headset
Change-Id: Ie8b817af291d07270ffed9cdbcd200515bb3599f
-rw-r--r-- | gallerycommon/src/com/android/gallery3d/common/ApiHelper.java | 3 | ||||
-rw-r--r-- | src/org/codeaurora/gallery3d/video/SpeakerHooker.java | 25 |
2 files changed, 22 insertions, 6 deletions
diff --git a/gallerycommon/src/com/android/gallery3d/common/ApiHelper.java b/gallerycommon/src/com/android/gallery3d/common/ApiHelper.java index da36f9d4e..e169338c2 100644 --- a/gallerycommon/src/com/android/gallery3d/common/ApiHelper.java +++ b/gallerycommon/src/com/android/gallery3d/common/ApiHelper.java @@ -369,7 +369,8 @@ public class ApiHelper { public static class AudioSystem { public static final int FORCE_NONE = 0; - public static final int FORCE_SPEAKER = 1; + public static final int FORCE_SPEAKER_HEADSET = 1; + public static final int FORCE_SPEAKER_BT = 10; public static final int FOR_MEDIA = 1; diff --git a/src/org/codeaurora/gallery3d/video/SpeakerHooker.java b/src/org/codeaurora/gallery3d/video/SpeakerHooker.java index 912de96a5..c2aebd720 100644 --- a/src/org/codeaurora/gallery3d/video/SpeakerHooker.java +++ b/src/org/codeaurora/gallery3d/video/SpeakerHooker.java @@ -28,8 +28,10 @@ IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ package org.codeaurora.gallery3d.video; +import android.bluetooth.BluetoothAdapter; import android.bluetooth.BluetoothClass; import android.bluetooth.BluetoothDevice; +import android.bluetooth.BluetoothProfile; import android.content.BroadcastReceiver; import android.content.Context; import android.content.Intent; @@ -154,7 +156,7 @@ public class SpeakerHooker extends MovieHooker { if (isSpeakerOn()) { turnSpeakerOff(); } else { - if (mIsHeadsetOn) { + if (mIsHeadsetOn || isBtHeadsetConnected()) { turnSpeakerOn(); } else { Toast.makeText(getContext(), getContext().getString(R.string.speaker_need_headset), @@ -164,12 +166,25 @@ public class SpeakerHooker extends MovieHooker { updateSpeakerButton(); } + private boolean isBtHeadsetConnected() { + BluetoothAdapter adapter = BluetoothAdapter.getDefaultAdapter(); + if (adapter != null) { + if (BluetoothProfile.STATE_CONNECTED == + adapter.getProfileConnectionState(BluetoothProfile.HEADSET) || + BluetoothProfile.STATE_CONNECTED == + adapter.getProfileConnectionState(BluetoothProfile.A2DP)) { + return true; + } + } + return false; + } + private void turnSpeakerOn() { if (mAudioManager == null) { initAudioManager(); } - AudioSystem.setForceUse(AudioSystem.FOR_MEDIA, - AudioSystem.FORCE_SPEAKER); + AudioSystem.setForceUse(AudioSystem.FOR_MEDIA, isBtHeadsetConnected() ? + AudioSystem.FORCE_SPEAKER_BT : AudioSystem.FORCE_SPEAKER_HEADSET); } private void turnSpeakerOff() { @@ -198,8 +213,8 @@ public class SpeakerHooker extends MovieHooker { } private boolean isSpeakerOn() { - return (AudioSystem.FORCE_SPEAKER - == AudioSystem.getForceUse(AudioSystem.FOR_MEDIA)); + return (AudioSystem.FORCE_SPEAKER_HEADSET == AudioSystem.getForceUse(AudioSystem.FOR_MEDIA) + || AudioSystem.FORCE_SPEAKER_BT == AudioSystem.getForceUse(AudioSystem.FOR_MEDIA)); } } |