OSDN Git Service

AudioService: Send "becoming noisy" intent when USB accessory audio is disconnected
authorMike Lockwood <lockwood@google.com>
Tue, 18 Sep 2012 18:16:57 +0000 (11:16 -0700)
committerMike Lockwood <lockwood@google.com>
Tue, 18 Sep 2012 21:55:52 +0000 (14:55 -0700)
Bug: 7051259

Change-Id: I5b5fb3ad7c7e38dbf49700d893fd49354eaecf51
Signed-off-by: Mike Lockwood <lockwood@google.com>
media/java/android/media/AudioService.java

index 4459d03..3a398a1 100644 (file)
@@ -3490,12 +3490,15 @@ public class AudioService extends IAudioService.Stub implements OnFinished {
                     (device == AudioSystem.DEVICE_OUT_WIRED_HEADPHONE))) {
                 setBluetoothA2dpOnInt(true);
             }
-            handleDeviceConnection((state == 1), device, "");
+            boolean isUsb = ((device & AudioSystem.DEVICE_OUT_ALL_USB) != 0);
+            handleDeviceConnection((state == 1), device, (isUsb ? name : ""));
             if ((state != 0) && ((device == AudioSystem.DEVICE_OUT_WIRED_HEADSET) ||
                     (device == AudioSystem.DEVICE_OUT_WIRED_HEADPHONE))) {
                 setBluetoothA2dpOnInt(false);
             }
-            sendDeviceConnectionIntent(device, state, name);
+            if (!isUsb) {
+                sendDeviceConnectionIntent(device, state, name);
+            }
         }
     }
 
@@ -3587,7 +3590,7 @@ public class AudioService extends IAudioService.Stub implements OnFinished {
                         + (action.equals(Intent.ACTION_USB_AUDIO_ACCESSORY_PLUG) ?
                               "ACTION_USB_AUDIO_ACCESSORY_PLUG" : "ACTION_USB_AUDIO_DEVICE_PLUG")
                         + ", state = " + state + ", card: " + alsaCard + ", device: " + alsaDevice);
-                handleDeviceConnection((state == 1), device, params);
+                setWiredDeviceConnectionState(device, state, params);
             } else if (action.equals(BluetoothHeadset.ACTION_AUDIO_STATE_CHANGED)) {
                 boolean broadcast = false;
                 int scoAudioState = AudioManager.SCO_AUDIO_STATE_ERROR;