private void HandleEventLine(string line) { var split = line.Split(new string[] { " " }, StringSplitOptions.RemoveEmptyEntries); var getVal = new Func <int, string>((index) => { if (index >= split.Length) { return(""); } else { return(split[index]); } }); var ahead = getVal(0); if (!ahead.StartsWith("/dev/input/event")) { return; } var type = getVal(1); var code = getVal(2); if (code == "SYN_REPORT") //过滤 { return; } var value = getVal(3); if (code == "ABS_MT_POSITION_Y" && lastCode == "ABS_MT_POSITION_X" && lastLastCode == "BTN_TOUCH" && (lastLastValue == "UP" || lastLastValue == "DOWN")) { x = HexStr2Int(lastValue); y = HexStr2Int(value); var adbEvent = new AdbEvent() { Type = AdbEventType.Tap, Param0 = lastLastValue, Param1 = x, Param2 = y, }; OnEvent?.Invoke(adbEvent); AccessNewTapEvent(lastLastValue, x, y); } else if (code == "ABS_MT_TRACKING_ID" && lastCode == "BTN_TOUCH" && CheckAccessNewTapEventTimeLimit(lastValue, x, y)) { var adbEvent = new AdbEvent() { Type = AdbEventType.Tap, Param0 = lastValue, Param1 = x, Param2 = y, }; OnEvent?.Invoke(adbEvent); AccessNewTapEvent(lastLastValue, x, y); } lastLastCode = lastCode; lastLastValue = lastValue; lastCode = code; lastValue = value; }
private void AdbTools_OnEvent(AdbEvent obj) { logTools.Info("AdbTools_OnEvent", $"{obj.Param0} {obj.Param1} {obj.Param2}"); }