adb shell 查看
P55Nxt:/dev/input # getevent
add device 1: /dev/input/event8
name: "xxx-skua-snd-card Headset Jack"
add device 2: /dev/input/event7
name: "xxx-skua-snd-card Button Jack"
add device 3: /dev/input/event4
name: "qpnp_pon"
add device 4: /dev/input/event3
name: "accelerometer"
add device 5: /dev/input/event2
name: "proximity"
add device 6: /dev/input/event1
name: "stk3x1x-ls"
could not get driver version for /dev/input/mice, Not a typewriter
add device 7: /dev/input/event5
name: "elan"
add device 8: /dev/input/event0
name: "msg28xx"
add device 9: /dev/input/event6
name: "gpio-keys"
130|P55Nxt:/dev/input # getevent -l event8
EV_SW SW_HEADPHONE_INSERT 00000000
EV_SW SW_MICROPHONE_INSERT 00000000
EV_SW SW_JACK_PHYSICAL_INS 00000000
EV_SYN SYN_REPORT 00000000
EV_SW SW_HEADPHONE_INSERT 00000001
EV_SW SW_MICROPHONE_INSERT 00000001
EV_SW SW_JACK_PHYSICAL_INS 00000001
EV_SYN SYN_REPORT 00000000
流程:
跟key键 或者 触摸事件一样通过dev/input上传
EventHub.cpp
getEvents
->scanDevicesLocked
->scanDirLocked("/dev/input");
->openDeviceLocked
SwitchInputMapper
void SwitchInputMapper::sync(nsecs_t when) {
if (mUpdatedSwitchMask) {
uint32_t updatedSwitchValues = mSwitchValues & mUpdatedSwitchMask;
NotifySwitchArgs args(when, 0, updatedSwitchValues, mUpdatedSwitchMask);
getListener()->notifySwitch(&args);
mUpdatedSwitchMask = 0;
}
}
notifySwitch(&args);
mUpdatedSwitchMask = 0;
}
}
InputDispatcher
void InputDispatcher::notifySwitch(const NotifySwitchArgs* args) {
#if DEBUG_INBOUND_EVENT_DETAILS
ALOGD("notifySwitch - eventTime=%lld, policyFlags=0x%x, switchValues=0x%08x, switchMask=0x%08x",
args->eventTime, args->policyFlags,