framework 流程
关键词
/sys/class/switch/h2w
sys/devices/virtual/switch/h2w
log打印
logcat |grep -E “WiredAccessoryManager|AudioPolicy|AudioService”
04-23 11:42:07.280 1557 1557 I SystemServer: StartAudioService //strat SystemServer
04-23 11:42:07.280 1557 1557 I SystemServiceManager: Starting com.android.server.audio.AudioService$Lifecycle
04-23 11:42:07.309 1557 1557 D SystemServerTiming: StartAudioService took to complete: 28ms
04-23 11:42:07.310 1557 1557 I SystemServer: StartWiredAccessoryManager // Start WiredAccessoryManager
04-23 11:42:07.311 1557 1557 W WiredAccessoryManager: This kernel does not have usb audio support // 说明不支持 usb
04-23 11:42:07.311 1557 1557 D SystemServerTiming: StartWiredAccessoryManager took to complete: 0ms
04-23 11:42:08.274 1557 1557 V WiredAccessoryManager: init() // WiredAccessoryManager init
04-23 11:43:21.823 1557 1616 V WiredAccessoryManager: Headset UEVENT: {SUBSYSTEM=switch, SEQNUM=2786, ACTION=change, SWITCH_NAME=Headset, DEVPATH=/devices/virtual/switch/h2w, SWITCH_STATE=2}
04-23 11:43:21.823 1557 1616 V WiredAccessoryManager: newName=Headset newState=2 headsetState=2 prev headsetState=0
04-23 11:43:21.825 1557 1616 I WiredAccessoryManager: MSG_NEW_DEVICE_STATE
04-23 11:43:21.825 1557 1557 V WiredAccessoryManager: headsetName: connected
04-23 11:43:21.825 1557 1557 I AudioService: setWiredDeviceConnectionState(1 nm: addr:)
04-23 11:43:21.827 1557 1651 I AudioService: onSetWiredDeviceConnectionState(dev:8 state:1 address: deviceName: caller: android);
04-23 11:43:21.827 1557 1651 I AudioService: handleDeviceConnection(true dev:8 address: name:)
04-23 11:43:21.827 1557 1651 I AudioService: deviceKey:0x8:
04-23 11:43:21.827 1557 1651 I AudioService: deviceSpec:null is(already)Connected:false //连接耳机
04-23 11:43:21.828 393 863 D APM_AudioPolicyManager: setDeviceConnectionStateInt() device: 0x8, state 1, address name //调用 audiopolicy
04-23 11:43:21.834 1557 1651 I AudioService: sendDeviceConnectionIntent(dev:0x8 state:0x1 address: name:);
04-23 11:43:50.213 1557 1616 V WiredAccessoryManager: Headset UEVENT: {SUBSYSTEM=switch, SEQNUM=2787, ACTION=change, SWITCH_NAME=Headset, DEVPATH=/devices/virtual/switch/h2w, SWITCH_STATE=0}
04-23 11:43:50.213 1557 1616 V WiredAccessoryManager: newName=Headset newState=0 headsetState=0 prev headsetState=2
04-23 11:43:50.214 1557 1616 I WiredAccessoryManager: MSG_NEW_DEVICE_STATE
04-23 11:43:50.214 1557 1557 V WiredAccessoryManager: headsetName: disconnected
04-23 11:43:50.214 1557 1557 I AudioService: setWiredDeviceConnectionState(0 nm: add
setDeviceConnectionStateInt
setDeviceConnectionStateInt() device: 0x8, state 1, address name
Android audio不同设备输出不同音频研究(上)
Android audio 输出设备选择过程分析(下)