AudioService: check for audio device connection success

When connecting/disconnecting and audio device, AudioService
  was assuming that the call was always successful through
  AudioSystem.setDeviceConnectionState(). In the case of the
  connection of a wired headset (mic + headphones), this also
  causes A2DP to not be used for media playback.
The connection can fail if the audio device being connected
  is not supported by the platform. But if this failure is
  not taken into account for DEVICE_OUT_WIRED_HEADSET or
  HEADPHONES, A2DP would still be avoided even when an A2DP
  device reconnects at boot.
The fix consists in executing the connection logic only when
  the connection was deemed successful. Nothing is altered
  on the disconnection code path, or the direct connection
  of A2DP.
The javadoc is updated in AudioSystem to indicate the return
  codes to take into account in setDeviceConnectionState().

Bug 22511833

Change-Id: I22f0d2c7d4ab4fb9ee1be2f248907f721596a16f
2 files changed