300字范文,内容丰富有趣,生活中的好帮手!
300字范文 > android手机模拟屏幕点击

android手机模拟屏幕点击

时间:2018-06-30 12:11:32

相关推荐

android手机模拟屏幕点击

跨进程屏幕点击:可以用

sendevent /dev/input/eventX 实现,前提手机已经root。

遇到的坑:

1:adb shell可以,但是code不行,有可能是因为eventX文件没有读写权限,请chmod 777 eventX。

2:执行adb没有权限,adb shell setenforce 0.

相关代码;

private void exceutecmd(String x,String y){String envets = "sendevent /dev/input/event6 ";String IDValue ="112";String TouchaMajorValue ="4";String PressValue[] ={"10","40","20","0"};//不同手机如下值配置不同,getevent查看String EnvAbs="X ",AbsID="XX ",AbsX ="XX ",AbsY="XX ",AbsTouchMajor="XX ",AbsPress ="XX ";String sync =envets+"0 0 0";{exceutecmd(envets + EnvAbs + AbsID + IDValue);exceutecmd(envets + EnvAbs + AbsX + x);exceutecmd(envets + EnvAbs + AbsY + y);exceutecmd(envets + EnvAbs + AbsTouchMajor + TouchaMajorValue);for (int i = 0; i < PressValue.length; i++) {exceutecmd(envets + EnvAbs + AbsPress + PressValue[i]);exceutecmd(sync);}exceutecmd(envets + EnvAbs + AbsID + "-1");exceutecmd(sync);}}

private void exceutecmd(String cmd){try{Runtime.getRuntime().exec(cmd);Thread.sleep(10);}catch(Exception e){ }}

public void DisplayMyview(){LayoutInflater inflator = (LayoutInflater)this.getSystemService(Context.LAYOUT_INFLATER_SERVICE);View view = inflator.inflate(R.layout.layout_toast, null);if (FloatWindow.get() == null)FloatWindow.setView(view)//网上写好的悬浮框简写。Button button =view.findViewById(R.id.button1);Button button2 =view.findViewById(R.id.button2);Button button3 =view.findViewById(R.id.button3);button.setOnClickListener(new View.OnClickListener() {public void onClick(View v) {init();start();}});button2.setOnClickListener(new View.OnClickListener() {public void onClick(View v) {stop();}});button3.setOnClickListener(new View.OnClickListener() {public void onClick(View v) {stop();finish();FloatWindow.get().hide();}});}

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。