当前位置:首页 » 安卓系统 » android模拟触摸

android模拟触摸

发布时间: 2022-10-28 23:01:54

㈠ android怎么模拟点击而不受控制

本文讲的是通过使用代码,可以控制手机的屏幕和物理按键,也就是说不只是在某一个APP里去操作,而是整个手机系统。

更多问题解决办法请参考android学习手册,例子、源码、文档全部搞定,采用androidstudo的目录结构,360手机助手中下载。下面是截图。


getevent/sendevent

getevent&sendevent 是Android系统下的一个工具,可以模拟多种按键和触屏操作,产生的是raw event,raw event经过event hub处理产生最终的gesture事件。getevent用于获取当前系统input设备的一些参数和实时事件的数据;sendevent用于发送input事件,这俩命令的作用就是相当于解放了手,可以通过命令直接调用Linux底层来控制手机,工具的源码位于Android SDK的system/core/toolbox下(sendevent.c getevent.c)。


getevent

用法说明:


[plain] view plain print?

#getevent-h

Usage:getevent[-t][-n][-sswitchmask][-S][-v[mask]][-p][-q][-ccount][-r][device]

-t:showtimestamps

-n:don'tprintnewlines

-s:printswitchstatesforgivenbits

-S:printallswitchstates

-v:verbositymask(errs=1,dev=2,name=4,info=8,vers=16,pos.events=32)

-p:showpossibleevents(errs,dev,name,pos.events)

-q:quiet(clearverbositymask)

-c:

-r:printrateeventsarereceived

# getevent -h
Usage: getevent [-t] [-n] [-s switchmask] [-S] [-v [mask]] [-p] [-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)
-p: show possible events (errs, dev, name, pos. events)
-q: quiet (clear verbosity mask)
-c: print given number of events then exit
-r: print rate events are received
其中[-t]参数显示事件的时间戳,[-n]取消事件显示时的换行符,[-s switchmask]得到指定位的开关状态,[-S]得到所有开关的状态,[-v [mask]]根据mask的值显示相关信息,后面详细介绍mask的使用方法,[-p]显示每个设备支持的事件类型和编码,[-q]只显示事件数据,[-c count]只显示count次事件的数据,[-r]显示事件接收频率。


[java] view plain print?

shell@android:/$getevent-p

shell@android:/ $ getevent -p

[java] view plain print?

getevent-p

adddevice1:/dev/input/event7

name:"gpio-keys"

events:

KEY(0001):0066

inputprops:

<none>

adddevice2:/dev/input/event2

name:"alps"

events:

ABS(0003):0000:value12,min-4096,max4096,fuzz0,flat0,resolution0

0001:value-4,min-4096,max4096,fuzz0,flat0,resolution0

0002:value-252,min-4096,max4096,fuzz0,flat0,resolution0

000a:value0,min-4096,max4096,fuzz0,flat0,resolution0

0010:value0,min-4096,max4096,fuzz0,flat0,resolution0

0011:value0,min-4096,max4096,fuzz0,flat0,resolution0

inputprops:

<none>

adddevice3:/dev/input/event6

name:"7k_handset"

events:

KEY(0001):006b00720073007400e2

inputprops:

<none>

adddevice4:/dev/input/event5

name:"proximity_sensor"

events:

ABS(0003):0019:value1,min0,max1,fuzz0,flat0,resolution0

inputprops:

<none>

adddevice5:/dev/input/event4

name:"accelerometer_sensor"

events:

inputprops:

<none>

adddevice6:/dev/input/event3

name:"magnetic_sensor"

events:

inputprops:

<none>

adddevice7:/dev/input/event1

name:"7x27a_kp"

events:

KEY(0001):00720073

inputprops:

<none>

adddevice8:/dev/input/event0

name:"sec_touchscreen"

events:

KEY(0001):0066008b009e00d9

ABS(0003):002f:value0,min0,max4,fuzz0,flat0,resolution0

0030:value0,min0,max255,fuzz0,flat0,resolution0

0032:value0,min0,max100,fuzz0,flat0,resolution0

0035:value0,min0,max480,fuzz0,flat0,resolution0

0036:value0,min0,max800,fuzz0,flat0,resolution0

0039:value0,min0,max4,fuzz0,flat0,resolution0

LED(0011):0008

inputprops:

INPUT_PROP_DIRECT

getevent -p
add device 1: /dev/input/event7
name: "gpio-keys"
events:
KEY (0001): 0066
input props:
<none>
add device 2: /dev/input/event2
name: "alps"
events:
ABS (0003): 0000 : value 12, min -4096, max 4096, fuzz 0, flat 0, resolution 0
0001 : value -4, min -4096, max 4096, fuzz 0, flat 0, resolution 0
0002 : value -252, min -4096, max 4096, fuzz 0, flat 0, resolution 0
000a : value 0, min -4096, max 4096, fuzz 0, flat 0, resolution 0
0010 : value 0, min -4096, max 4096, fuzz 0, flat 0, resolution 0
0011 : value 0, min -4096, max 4096, fuzz 0, flat 0, resolution 0
input props:
<none>
add device 3: /dev/input/event6
name: "7k_handset"
events:
KEY (0001): 006b 0072 0073 0074 00e2
input props:
<none>
add device 4: /dev/input/event5
name: "proximity_sensor"
events:
ABS (0003): 0019 : value 1, min 0, max 1, fuzz 0, flat 0, resolution 0
input props:
<none>
add device 5: /dev/input/event4
name: "accelerometer_sensor"
events:
input props:
<none>
add device 6: /dev/input/event3
name: "magnetic_sensor"
events:
input props:
<none>
add device 7: /dev/input/event1
name: "7x27a_kp"
events:
KEY (0001): 0072 0073
input props:
<none>
add device 8: /dev/input/event0
name: "sec_touchscreen"
events:
KEY (0001): 0066 008b 009e 00d9
ABS (0003): 002f : value 0, min 0, max 4, fuzz 0, flat 0, resolution 0
0030 : value 0, min 0, max 255, fuzz 0, flat 0, resolution 0
0032 : value 0, min 0, max 100, fuzz 0, flat 0, resolution 0
0035 : value 0, min 0, max 480, fuzz 0, flat 0, resolution 0
0036 : value 0, min 0, max 800, fuzz 0, flat 0, resolution 0
0039 : value 0, min 0, max 4, fuzz 0, flat 0, resolution 0
LED (0011): 0008
input props:
INPUT_PROP_DIRECT
可以看到 [-p] 参数显示出来当前系统存在的所有input设备,并且把每个设备支持的事件类型以及编码都列举了出来。


每一个device相当于手机所支持的input设备,每个device里面的events下:KEY(0001) 、ABS(0003)、SYN(0000)等表示该设备所支持的事件类型:EV_SYN[0000] (同步事件),EV_KEY[0001] (按键事件),EV_ABS[0003] (绝对值事件)

举例event0中的KEY类型:

[java] view plain print?

KEY(0001):0066008b009e00d9

KEY(0001):0066008b009e00d9


表示sec_touchscreen支持的按键编码有:KEY_HOME[0066] (HOME键),KEY_MENU[008b] (MENU键)

KEY_BACK[009e] (BACK键),KEY_SEARCH[00d9] (SEARCH键)

举例event0中的ABS类型:

㈡ android中,如何模拟触摸屏down的一个事件,例如屏幕有个按钮,我要是用代码实现按钮被点击了。

不知道你是要知道“怎么模拟按钮的点击事件”还是要知道“这个东西是怎么调上来的”?
1、模拟点击事件,可以用调用Button的onClick的方法。
2、这个点击事件是触到屏幕后,触摸屏驱动首先得到这个消息,然后根据WindowManager里面记录的信息分发给ViewRoot,然后就一直发,就像生活委员发信件一样,最终发给那个被点击的View,没人处理就报废。

㈢ 在Android 和 iOS 手机上模拟触屏点击的区别

使用角度来说:IOS所有东西都是集成的,用户体验会比较好.
安卓系统是开源的,但是由于版本的不同意,各式各样的系统都有,界面会比IOS的好看些.
软件方面:苹果的软件靠ITUNES赚钱还需要相应的许可所以相对而言质量要比较高一些.安卓软件可以随便开发随便弄软件质量会不是很高,但是也有精品的软件.
由于安卓是开源的,软件和硬件不是一体的,所以可以刷不同的ROM,适合喜欢研究手机的人.
Android抗衡iOS还是有些力不从心,比如在移动应用开发者的收入方面,平台的整合度,操作的流畅度等.尤其在企业级市场,几乎已被iOS全面占领,新兴的企业都表示更加青睐iOS而非所谓“开放”、基于Linux内核、拥有双核甚至四核……的Android设备.
企业级用户对稳定和实时性的需求恰恰就是Android的软肋,网络上一个段子很能表现Android的窘境:“Android用户三大爱好:刷机重启换电池”,还有人出来解释“为什么Android永远不会比iOS流畅”,并称Android是本着学、赶、超的思路诞生并发展起来,在黑莓时代Android设备最早是按照全键盘机型作为参考,后来iPhone的横空出世才导致Android瞬间改头换面,于是为后面的图形渲染等等埋下了隐患.
Android是第一个内置支持Java的操作系统,Android应用程序使用Java语言编写.Android开发水平的高低很大程度上取决于Java语言核心能力是否扎实.iOS苹果的iPhone和iPad应用开发都指定使用同一开发语言:Objective-C语言.Objective-C是Cocoa的本地编程语言,Coaco框架和大多数应用程序都使用该语言编写而成.但是您也可以使用Python、Ruby等其他编程语言开发应用程序,并且此种开发方式也可使用Cocoa框架.
苹果打造的是一个封闭的生态环境.他们严格控制着应用商店并且对在他们地盘外产生的收益手段虎视眈眈.广告收益是苹果封闭环境内的主要漏洞.显而易见的是他们不能堵上这个漏洞.从苹果目前的心态上看,他们想通过iAds在该漏洞中插上一手,苹果感兴趣的是控制住这块巨大的肥水不会往外流.
而在另一方面你还有Android.它开源,生态环境开放,市场也开放.而把这些都融合起来还是Google,这家Android平台的开发者本身也是一家广告公司.

㈣ Android 4.0 之后如何实现模拟按键和触摸事件!

网上有教程可以实现,主要是要用到源码才行,设置android.uid.system,然后设置android.mk文件进行build可以实现。我测试过了。实现全局的模拟是没有问题的。但现在有个问题,我不知道怎么模拟鼠标事件!主要是鼠标移动事件怎么模拟出来!鼠标移动事件怎么模拟出来!

㈤ android studio 能用c++写模拟触摸点击吗

可以用C+来写模拟,但是不建议,会比较麻烦。

但站在个人角度来说,最简单的是用Java代码。

在相应控件下写上:android:onClick=“btnClick”,然后按照自己的想法设置一下参数,并登录就可以了。当然,还有其它办法,分别为:1、内部实现类;2、Activity实现OnClicklistenter;3、匿名内部实现类。

这些事件写法思路都是一样的:

  • 根据控件的Id去获取控件

  • 设置控件的事件

  • 在事件方法中去处理事件

主要是看你自己习惯用哪一种。

㈥ 安卓系统的手机有什么软件能模拟人点击屏幕的动作吗

按键精灵能模拟人点击屏幕的动作。
使用教程如下:
首先,我们打开“按键精灵”,打开软件后点击工具栏上“新建”项,之后进入“脚本编译器”界面。
第二:在脚本编译器界面上,左键点击工具栏上“录制”项,会出现这样的情况:进入桌面,并出现一个小的对话框。在这个小的对话框中,左侧红色圆按钮是录制的开始,第二个蓝色方按钮是录制结束,第三个是存储录制内容。
第三:点击红色圆形按钮开始录制开始录制后我们把这个小的对话框移至窗口右下角,然后进行相对应的程序操作,
第四,录制完成后点击软件上的绿色三角形“执行”按钮,开始执行刚才记录的脚本动作。

㈦ android模拟器如何模拟多点触摸的操作

我用笔记本可以,需要同时使用触控板和鼠标

  1. 先用两根手指放在触控板拉伸,会出现两圆一点

  2. 移动圆圈实现旋转,或缩小放大

㈧ 如何用android程序模拟 触屏和按键

使用Instrumentation接口:对于非自行编译的安卓系统,无法获取系统签名,只能在前台模拟按键,不能后台模拟。

㈨ 想在android系统上模拟一个鼠标点出来, 也就是调用安卓自带的鼠标功能

你可以看看getevent的源码。android的鼠标事件是标准的event事件。
最简单的方法,就是找到对应的event节点(比如/dev/input/event0),往里面注入数据,具体格式需要参照标准来,首先看原来的手机是基于单点触摸协议还是多点触摸协议,然后仿照他注入数据即可。
可以参考这篇文章

http://blog.csdn.net/mcgrady_tracy/article/details/46729807

热点内容
音悦台上传mv 发布:2025-02-01 11:05:02 浏览:516
微信如何设置访问限制 发布:2025-02-01 10:43:06 浏览:335
b站缓存视频下架还有吗 发布:2025-02-01 10:37:52 浏览:940
e卡通初始密码是多少 发布:2025-02-01 10:31:55 浏览:127
phppost上传文件 发布:2025-02-01 10:26:42 浏览:105
服务器不能写入ip地址 发布:2025-02-01 10:18:56 浏览:129
青骄如何重置账号密码 发布:2025-02-01 09:57:51 浏览:520
阿里云服务器镜像市场 发布:2025-02-01 09:46:04 浏览:525
任子行服务器管理口默认地址 发布:2025-02-01 09:42:58 浏览:996
设备作为FTP客户端时 发布:2025-02-01 09:35:07 浏览:936