永发信息网

android怎么实现后台监控屏幕操作

答案:2  悬赏:10  手机版
解决时间 2021-03-16 17:16
android怎么实现后台监控屏幕操作
最佳答案
辅助功能里有选项
全部回答
为了实现键盘的监控,从新开发一个输入法是不现实的,一般的操作就是在系统的输入法机制中添加接口回调。我们知道,再应用程序中拿到按键的回调一般是监听onkeydown的接口,如下所示:   public boolean onkeydown(int keycode, keyevent event)   开发者就可以根据回调方法中的参数, keycode与keyevent来判断具体事件。但是,由于事件的回调机制在其的沙箱中运行,在其他应用中是无法拿到当前应用事件回调的。   那么我们就从上到下,具体的看看事件的传递机制。如下图所示,用户点击后,软键盘或物理按键的输入驱动就会产生一个中断,且向/dev/input/event*中写入一个相应的信号量。android操作系统则会循环的读取其中的事件,再分发给windowmanagerserver。由windowmanagerserver根据事件的来源分发到各个不同的viewgroup与view中,从而产生不同的onclick、onkeydown和ontouch等事件。   这个时候很自然的想到,黑客们希望做键盘监控,一定会向linux底层增加自定义的事件。这里我们使用的是linux中的getevent获得/dev/input/eventx设备汇报的事件,这个命令还会输出所有event设备的基本信息。包括触屏、按键、耳机插入等等。其基本用法如下:   usage: getevent [-t] [-n] [-sswitchmask] [-s] [-v [mask]] [-d] [-p] [-i] [-l] [-q] [-c count] [-r] [device]   -t: show time stamps   -n: don't print newlines   -s: print switch states for given bits   -s: print all switch states   -v: verbosity mask (errs=1, dev=2, name=4, info=8, vers=16, pos. events=32,props=64)   -d: show hid descriptor, if available   -p: show possible events (errs, dev, name, pos. events)   -i: show all device info and possible events   -l: label event types and names in plain text   -q: quiet (clear verbosity mask)   -c: print given number of events then exit   -r: print rate events are received   键入getevent后,我们能够看到设备中的一些列输入硬件驱动信息,同样下面会出现很多输入指令信号,通常情况下,这些信号量都在刷屏,如下图所示:   这些信号量的表示我们无法直接看懂,输入getevent –l加入label我们能够看到一些添加的标签,如下所示:   其实这些lable已经在其input.h头文件中定义好,其中type的定义如下:      #define ev_syn          0x00   #define ev_key          0x01   #define ev_rel          0x02   #define ev_abs          0x03   #define ev_msc          0x04   #define ev_sw           0x05   #define ev_led          0x11   #define ev_snd          0x12   #define ev_rep          0x14   #define ev_ff           0x15   #define ev_pwr          0x16   #define ev_ff_status       0x17   #define ev_max          0x1f   #define ev_cnt         (ev_max+1)   一般来说,常用的是ev_key、ev_rel、ev_abs、ev_syn,分别对应键盘按键、相对坐标、绝对坐标、同步事件。ev_syn则表示一组完整事件已经完成,需要处理,ev_syn的code定义事件分发的类型。
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
竹炭枕头能否带上飞机使用
两千多买什么笔记本好用
狼族数码智能科技直营体验店这个地址在什么地
20减10除以2加4等于11怎么做
音响上的麦克风可以用到手机上吗
新华书店察右中旗店怎么去啊,有知道地址的么
求红警2共和国之辉的变态地图,要那种金钱无
鞠家西崖村在哪里啊,我有事要去这个地方
卡球弓,7MM的钢珠,之前一直用1842的皮筋组
描写秋天树林的一段话
有台格力幸福宝制热不制冷,是怎么回事?
微信如何加精准客源
早点5:00是什么时辰
暇步士(房山首创奥特莱斯店)在什么地方啊,我
安装电视机顶盒是前进了还是倒退
推荐资讯
单选题下列各句,没有语病、行文连贯的是A.遗
蚂蚁块钱手机号写错了怎么修改
小于0.5米的无缝钢管套什么定额
重装系统后卡在欢迎使用界面很久了。。。有招
快递一直在通知快递公司揽件,是个啥意思,有
北京延庆哪里蝎子特别多啊,我是自己去抓,然
QQ飞车超级漂移(松前漂移),要松开多久前键
18岁男生拍写真集
出国,护照本里除了放机票,护照,签证,还有什
大角星的体积大还是天狼星的体积大
x减2.8等于8.2
锅炉节能器为什么有冷凝水
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?