diff options
author | David Lin <dtwlin@google.com> | 2017-08-01 21:16:11 +0000 |
---|---|---|
committer | android-build-merger <android-build-merger@google.com> | 2017-08-01 21:16:11 +0000 |
commit | 7ed2b496b655b5d494ef024474d626e4d3ceb433 (patch) | |
tree | 50ddd241bfe8f63cc719083a06f95d354cb02306 | |
parent | e73ddbfe7239d442e70fa2d2098c76a927946883 (diff) | |
parent | 22c2ce9cfe71b1d905b9af3bc28513a8eba180c4 (diff) | |
download | android_packages_services_Telecomm-7ed2b496b655b5d494ef024474d626e4d3ceb433.tar.gz android_packages_services_Telecomm-7ed2b496b655b5d494ef024474d626e4d3ceb433.tar.bz2 android_packages_services_Telecomm-7ed2b496b655b5d494ef024474d626e4d3ceb433.zip |
Fix issue with USB headset not being recognized when boots
am: 22c2ce9cfe
Change-Id: I7e98cdf43e2803fc3b9a400cd694540f9cff7235
-rw-r--r-- | src/com/android/server/telecom/WiredHeadsetManager.java | 32 |
1 files changed, 20 insertions, 12 deletions
diff --git a/src/com/android/server/telecom/WiredHeadsetManager.java b/src/com/android/server/telecom/WiredHeadsetManager.java index 13fde486..120d1ce3 100644 --- a/src/com/android/server/telecom/WiredHeadsetManager.java +++ b/src/com/android/server/telecom/WiredHeadsetManager.java @@ -60,17 +60,7 @@ public class WiredHeadsetManager { } private void updateHeadsetStatus() { - AudioDeviceInfo[] devices = mAudioManager.getDevices(AudioManager.GET_DEVICES_ALL); - boolean isPluggedIn = false; - for (AudioDeviceInfo device : devices) { - switch (device.getType()) { - case AudioDeviceInfo.TYPE_WIRED_HEADPHONES: - case AudioDeviceInfo.TYPE_WIRED_HEADSET: - case AudioDeviceInfo.TYPE_USB_DEVICE: - case AudioDeviceInfo.TYPE_USB_HEADSET: - isPluggedIn = true; - } - } + final boolean isPluggedIn = isWiredHeadsetPluggedIn(); Log.i(WiredHeadsetManager.this, "ACTION_HEADSET_PLUG event, plugged in: %b, ", isPluggedIn); @@ -90,7 +80,7 @@ public class WiredHeadsetManager { public WiredHeadsetManager(Context context) { mAudioManager = (AudioManager) context.getSystemService(Context.AUDIO_SERVICE); - mIsPluggedIn = mAudioManager.isWiredHeadsetOn(); + mIsPluggedIn = isWiredHeadsetPluggedIn(); mAudioManager.registerAudioDeviceCallback(new WiredHeadsetCallback(), null); } @@ -111,6 +101,24 @@ public class WiredHeadsetManager { return mIsPluggedIn; } + private boolean isWiredHeadsetPluggedIn() { + AudioDeviceInfo[] devices = mAudioManager.getDevices(AudioManager.GET_DEVICES_ALL); + boolean isPluggedIn = false; + for (AudioDeviceInfo device : devices) { + switch (device.getType()) { + case AudioDeviceInfo.TYPE_WIRED_HEADPHONES: + case AudioDeviceInfo.TYPE_WIRED_HEADSET: + case AudioDeviceInfo.TYPE_USB_HEADSET: + case AudioDeviceInfo.TYPE_USB_DEVICE: + isPluggedIn = true; + } + if (isPluggedIn) { + break; + } + } + return isPluggedIn; + } + private void onHeadsetPluggedInChanged(boolean isPluggedIn) { if (mIsPluggedIn != isPluggedIn) { Log.v(this, "onHeadsetPluggedInChanged, mIsPluggedIn: %b -> %b", mIsPluggedIn, |