summaryrefslogtreecommitdiffstats
path: root/media/base
diff options
context:
space:
mode:
authorbraveyao <braveyao@chromium.org>2016-01-22 16:59:33 -0800
committerCommit bot <commit-bot@chromium.org>2016-01-23 01:00:27 +0000
commit923eda842e0e02eea4df7bc8ee7171503d8e1283 (patch)
tree3318f302776bc364686ac01403737b92a32e1fd4 /media/base
parente91a378d1f3fa1356d2f01beffaa27d49fdd5875 (diff)
downloadchromium_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.java12
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.