diff options
author | braveyao <braveyao@chromium.org> | 2016-01-22 16:59:33 -0800 |
---|---|---|
committer | Commit bot <commit-bot@chromium.org> | 2016-01-23 01:00:27 +0000 |
commit | 923eda842e0e02eea4df7bc8ee7171503d8e1283 (patch) | |
tree | 3318f302776bc364686ac01403737b92a32e1fd4 /media/base | |
parent | e91a378d1f3fa1356d2f01beffaa27d49fdd5875 (diff) | |
download | chromium_src-923eda842e0e02eea4df7bc8ee7171503d8e1283.zip chromium_src-923eda842e0e02eea4df7bc8ee7171503d8e1283.tar.gz chromium_src-923eda842e0e02eea4df7bc8ee7171503d8e1283.tar.bz2 |
Android emulator doesn't support USB service. And on emulator created without Google APIs, we can get UsbManager handler, but invoking method of it will cause exception. So we should catch such a exception on emulator.
BUG=578875
Review URL: https://codereview.chromium.org/1601093004
Cr-Commit-Position: refs/heads/master@{#371106}
Diffstat (limited to 'media/base')
-rw-r--r-- | media/base/android/java/src/org/chromium/media/AudioManagerAndroid.java | 12 |
1 files changed, 10 insertions, 2 deletions
diff --git a/media/base/android/java/src/org/chromium/media/AudioManagerAndroid.java b/media/base/android/java/src/org/chromium/media/AudioManagerAndroid.java index 93670a8..626beec 100644 --- a/media/base/android/java/src/org/chromium/media/AudioManagerAndroid.java +++ b/media/base/android/java/src/org/chromium/media/AudioManagerAndroid.java @@ -231,7 +231,7 @@ class AudioManagerAndroid implements AudioManager.OnAudioFocusChangeListener{ mNativeAudioManagerAndroid = nativeAudioManagerAndroid; mAudioManager = (AudioManager) mContext.getSystemService(Context.AUDIO_SERVICE); mContentResolver = mContext.getContentResolver(); - mUsbManager = (UsbManager) context.getSystemService(Context.USB_SERVICE); + mUsbManager = (UsbManager) mContext.getSystemService(Context.USB_SERVICE); } /** @@ -741,7 +741,15 @@ class AudioManagerAndroid implements AudioManager.OnAudioFocusChangeListener{ if (Build.VERSION.SDK_INT < Build.VERSION_CODES.LOLLIPOP) return false; boolean hasUsbAudio = false; - Map<String, UsbDevice> devices = mUsbManager.getDeviceList(); + // UsbManager fails internally with NullPointerException on the emulator created without + // Google APIs. + Map<String, UsbDevice> devices; + try { + devices = mUsbManager.getDeviceList(); + } catch (NullPointerException e) { + return false; + } + for (UsbDevice device : devices.values()) { // A USB device with USB_CLASS_AUDIO and USB_CLASS_COMM interface is // considerred as a USB audio device here. |