Android 系统里面有很多小工具,运行这些工具,我们可以掌握很多数据,再顺藤摸瓜,就可以针对设备做特殊的操作。

记录获取我手机的event信息,我的手机是小米版:

F:\eclipse\android_sdk-64\adt-bundle-windows-x86_64-20130219\sdk\platform-tools
adb shell
shell@android:/ $ cat /proc/bus/input/devices
cat /proc/bus/input/devices
I: Bus=0018 Vendor=0001 Product=0001 Version=0001
N: Name="mione-keypad"           ---->特殊键
P: Phys=mione-keypad/input0
S: Sysfs=/devices/platform/msm_ssbi.0/pm8058-core/pm8xxx-keypad/input/input0
U: Uniq=
H: Handlers=event0
B: PROP=0
B: EV=13
B: KEY=40000000 0 0 0 0 0 0 10000 0 0 0 0 0 0 0 0 0 0 0 0 c0000 0 0 0
B: MSC=10I: Bus=0018 Vendor=4654 Product=5000 Version=0100
N: Name="ft5x0x"         ----> 触摸屏
P: Phys=/devices/i2c-3/3-0038/input/input1
S: Sysfs=/devices/i2c-3/3-0038/input/input1
U: Uniq=
H: Handlers=event1
B: PROP=0
B: EV=9
B: ABS=6640000 0I: Bus=0000 Vendor=0000 Product=0000 Version=0000
N: Name="pmic8xxx_pwrkey"            ---->按键
P: Phys=pmic8xxx_pwrkey/input0
S: Sysfs=/devices/platform/msm_ssbi.0/pm8058-core/pm8xxx-pwrkey/input/input2
U: Uniq=
H: Handlers=event2
B: PROP=0
B: EV=3
B: KEY=100000 0 0 0I: Bus=0000 Vendor=0000 Product=0000 Version=0000
N: Name="lightsensor"            ---->光感应器
P: Phys=/devices/virtual/input/input3
S: Sysfs=/devices/virtual/input/input3
U: Uniq=
H: Handlers=event3
B: PROP=0
B: EV=9
B: ABS=100 0I: Bus=0000 Vendor=0000 Product=0000 Version=0000
N: Name="proximity"          ---->近距离感应器(脸颊感应)
P: Phys=/devices/virtual/input/input4
S: Sysfs=/devices/virtual/input/input4
U: Uniq=
H: Handlers=event4
B: PROP=0
B: EV=9
B: ABS=100 2000000I: Bus=0018 Vendor=0000 Product=0000 Version=0000
N: Name="accelerometer"          ---->加速度计
P: Phys=/devices/virtual/input/input5
S: Sysfs=/devices/virtual/input/input5
U: Uniq=
H: Handlers=event5
B: PROP=0
B: EV=9
B: ABS=7I: Bus=0018 Vendor=0000 Product=0000 Version=0000
N: Name="compass"            ---->定位仪
P: Phys=/devices/virtual/input/input6
S: Sysfs=/devices/virtual/input/input6
U: Uniq=
H: Handlers=event6
B: PROP=0
B: EV=9
B: ABS=7I: Bus=0000 Vendor=0000 Product=0000 Version=0000
N: Name="8660_handset"           ---->线控按键
P: Phys=pmic8058_othc/input0
S: Sysfs=/devices/platform/msm_ssbi.0/pm8058-core/pm8058-othc.1/input/input7
U: Uniq=
H: Handlers=event7
B: PROP=0
B: EV=23
B: KEY=10000 110 0 0 0 0 0
B: SW=4

然后我们用getevent了解设备运作,getevent用来监听Handler 指定设备事件,如:

> adb shell getevent /dev/input/event1   (event1为屏幕事件)

接着点击一下手机屏幕,会看到类似以下内容:

[type] [code] [value]
0003 0039 00000000   --》开始   (57)
0003 0035 0000015d   --》x轴0x15d的位置 (53)
0003 0036 0000011d   --》y轴0x11d的位置  (54)
0003 003a 00000010   --》ABS_MT_PRESSURE  (58)
0003 0032 00000010   --》ABS_MT_WIDTH_MAJOR  (50)
0000 0002 00000000   --》SYN                 (2)
0000 0000 00000000
0003 0039 00000000   --》开始
0003 0035 0000015d   --》x轴0x15d的位置
0003 0036 0000011d   --》y轴0x11d的位置
0003 003a 00000001   --》ABS_MT_PRESSURE
0003 0032 00000001   --》ABS_MT_WIDTH_MAJOR
0000 0002 00000000   --》SYN
0000 0000 00000000
0000 0002 00000000
0000 0000 00000000参见 /frameworks/base/include/ui/EventHub.h 可知code意义
#define ABS_MT_TOUCH_MAJOR 0x30 /* Major axis of touching ellipse */
#define ABS_MT_TOUCH_MINOR 0x31 /* Minor axis (omit if circular) */
#define ABS_MT_WIDTH_MAJOR 0x32 /* Major axis of approaching ellipse */
#define ABS_MT_WIDTH_MINOR 0x33 /* Minor axis (omit if circular) */
#define ABS_MT_ORIENTATION 0x34 /* Ellipse orientation */
#define ABS_MT_POSITION_X 0x35 /* Center X ellipse position */
#define ABS_MT_POSITION_Y 0x36 /* Center Y ellipse position */
#define ABS_MT_TOOL_TYPE 0x37 /* Type of touching device (finger, pen, ...) */
#define ABS_MT_BLOB_ID 0x38 /* Group a set of packets as a blob */
#define ABS_MT_TRACKING_ID 0x39 /* Unique ID of initiated contact */
#define ABS_MT_PRESSURE 0x3a /* Pressure on contact area */

一次快速单击app图标触屏的监听:

getevent /dev/input/event1

0003 0039 00000037     初始化事件id
0003 0039 00000000     初始化事件结束
0003 0035 000000ae     坐标x
0003 0036 000001ca     坐标y
0003 003a 00000010
0003 0032 00000010
0000 0000 00000000     压下结束
0003 003a 00000020
0003 0032 00000020
0000 0000 00000000     移动结束
0003 0039 ffffffff     事件id清空
0000 0000 00000000     一个事件的结束

记录小米设备事件获取相关推荐

  1. 小米设备token获取HomeAssistant安装部署

    小米设备token获取&HomeAssistant安装部署 小米智能设备token获取 miIO-discovery获取token与控制 app直接token获取 DB获取token 开源智能 ...

  2. 小米设备token获取HomeAssistant

    Use HomeAssistant Service Goto HomeAssistant service developer tool Select xiaomi_miot.get_token, En ...

  3. 海康威视人脸识别智能终端获取设备事件二次开发Java

    项目需求: 需要获取刷脸的流水记录,参考是主动获取设备事件SDK 步骤流程 连接设备----建立获取设备事件长连接------成功后就可以获取到设备事件进行其余的逻辑处理 1.连接设备 注意:HCNe ...

  4. 笔记(四)Home Assistant添加小米设备

    笔记(四)Home Assistant添加小米设备 本文接上一篇笔记,首先确保已经正确安装HACS,因为添加小米设备需要使用HACS中的小米集成组件,如果没有安装HACS,可以根据之前教程安装. 1. ...

  5. windows log日志分割_如何将日志记录到 Windows事件日志 中

    每当出现一些未捕获异常时,操作系统都会将异常信息写入到 Windows 事件日志 中,可以通过 Windows 事件查看器 查看,如下图: 这篇文章将会讨论如何使用编程的方式将日志记录到 Window ...

  6. 如何识别小米设备/MIUI系统或其他品牌手机

    前言 国内各大手机厂商,搭着Android开源免费的快车,都想分一杯羹,不仅如此,还要自己定制系统,对开发狗来说,可是痛苦无比,经常碰到各种坑,所以还是打算记录下来,毕竟脑子不够用啊0.0 识别某种系 ...

  7. 树莓派 + Home Assistant + HomeKit 从零开始打造个人智能家居系统 篇二:初步配置 Home Assistant 并连接小米设备与 HomeKit

    树莓派 + Home Assistant + HomeKit 从零开始打造个人智能家居系统 篇二:初步配置 Home Assistant 并连接小米设备与 HomeKit 通过本篇教程,你将完成对 H ...

  8. Android 手机设备信息获取使用详解

    Android 手机是我们常用的工具之一,买手机之前,手机厂商会提供一些手机参数给我们,那么问题来了,我们该如何获取手机上的参数信息呢? 通过本文你讲了解到获取手机常用信息的基本方法. 获取手机基本信 ...

  9. 安卓IMS 原理解析(二、IMS之InputReader事件获取)

    目录 1.EventHub->getEvents() 2.processEventsLocked() 3.mQueuedListener->flush() 前面讲到,在start()后会启 ...

最新文章

  1. tomcat启动慢_Hack下mongodb jdbc driver启动慢
  2. Python基础----python的使用(二)
  3. ansible2.4 api调用
  4. 【arduino】继续用arduino玩CyberPi童芯派之DA音频信号播放
  5. weblogic线程阻塞性能调优(图解)转
  6. vuex commit 传参数,传递多个参数
  7. v540 检测的问题
  8. 常用类中的方法 —— java.lang.String
  9. QT + MinGW 中文显示乱码解决方案
  10. MySQL数据库优化技术之数据库表的设计
  11. unity3D人物模型
  12. Linux虚拟机IP地址查询
  13. LDN双模键盘常见问题(FAQ)
  14. 第四届“泰迪杯”数据分析技能赛-赛题A:《通讯产品销售和盈利能力分析》报告
  15. 大学生必读的100本书
  16. 微信公众号开发之生成带参数的二维码
  17. 微信客户端如何发只有纯文字 不带图片的朋友圈动态
  18. 互联网技术常见简称公式总结:CPA、CPC、CPM、CVR、CTR、PV、UV、GMV定义以及相关计算公式
  19. 计算机专业银行春招,哪些银行有春招
  20. python视频搬运_拒绝降权!教你用 Python 确保制作的短视频独一无二

热门文章

  1. 从零开始了解5G 纤亿通浅谈5G
  2. sqlite3中,blob字段的读取和写入
  3. 令人困惑的fitsSystemWindows
  4. android 静态注册获取电量,获取手机电池百分比和电池容量方法
  5. 把ubuntu安装在U盘的教程之一:制作U盘启动盘
  6. 一名优秀的数据分析师,应该具备哪些基本素质?
  7. KSQL DB 学习笔记2
  8. 你肯定想学习的顶级Python项目(附代码)
  9. arduino学习笔记二十二--模拟交通信号灯
  10. 高性能服务器架构 第四篇