From 923eda842e0e02eea4df7bc8ee7171503d8e1283 Mon Sep 17 00:00:00 2001 From: braveyao Date: Fri, 22 Jan 2016 16:59:33 -0800 Subject: 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} --- .../java/src/org/chromium/media/AudioManagerAndroid.java | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) (limited to 'media/base') 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 devices = mUsbManager.getDeviceList(); + // UsbManager fails internally with NullPointerException on the emulator created without + // Google APIs. + Map 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. -- cgit v1.1