首页 > 其他分享 >直播平台软件开发,Android代码模拟触摸、点击及滑动等事件

直播平台软件开发,Android代码模拟触摸、点击及滑动等事件

时间:2023-04-12 14:11:42浏览次数:32  
标签:MotionEvent 软件开发 触摸 uptimeMillis obtain downTime ACTION Android 模拟

直播平台软件开发,Android代码模拟触摸、点击及滑动等事件

一、应用中模拟物理和屏幕点击事件

 

例如,模拟对某个view的点击事件

 


private void simulateClick(View view, float x, float y) {
    long downTime = SystemClock.uptimeMillis();
    final MotionEvent downEvent = MotionEvent.obtain(downTime, downTime,MotionEvent.ACTION_DOWN, x, y, 0);
    downTime += 1000;
    final MotionEvent upEvent = MotionEvent.obtain(downTime, downTime,MotionEvent.ACTION_UP, x, y, 0);
    view.onTouchEvent(downEvent);
    view.onTouchEvent(upEvent);
    downEvent.recycle();
    upEvent.recycle();
}
 
public void setMouseClick(int x, int y){  
    MotionEvent evenDownt = MotionEvent.obtain(System.currentTimeMillis(),  
            System.currentTimeMillis() + 100, MotionEvent.ACTION_DOWN, x, y, 0);  
    dispatchTouchEvent(evenDownt);  
    MotionEvent eventUp = MotionEvent.obtain(System.currentTimeMillis(),  
            System.currentTimeMillis() + 100, MotionEvent.ACTION_UP, x, y, 0);  
    dispatchTouchEvent(eventUp);  
    evenDownt.recycle();  
    eventUp.recycle();  
}  
 

这实现原理就是模拟两个MotionEvent (按下和提起) 然后用一个View 来处理这个Event 。

 

二、Instrumentation实现模拟键盘鼠标事件

 


 
// 可以不用在 Activity 中增加任何处理,各 Activity 都可以响应  
Instrumentation inst = new Instrumentation();  
inst.sendPointerSync(MotionEvent.obtain(SystemClock.uptimeMillis(),SystemClock.uptimeMillis(),   
    MotionEvent.ACTION_DOWN, 200, 500, 0));  
inst.sendPointerSync(MotionEvent.obtain(SystemClock.uptimeMillis(),SystemClock.uptimeMillis(),   
    MotionEvent.ACTION_UP, 200, 500, 0)); 

 

 以上就是 直播平台软件开发,Android代码模拟触摸、点击及滑动等事件,更多内容欢迎关注之后的文章

 

标签:MotionEvent,软件开发,触摸,uptimeMillis,obtain,downTime,ACTION,Android,模拟
From: https://www.cnblogs.com/yunbaomengnan/p/17309616.html

相关文章

  • android Route模块化路由设计方案
    背景:我们在移动端开发过程,随着业务越来越多,越来越复杂,在架构中会将业务进行剥离和抽取,这样会出现许多业务模块。但是各业务模块又有业务关联,常见的就是Activity之间的跳转。但是,一些大的公司,或者业务线非常多的app大多数采用混合模式,常见的就是H5和app混合,特别是电商商业比较常见。......
  • Android Kotlin实战之高阶使用泛型扩展协程懒加载详解
    前言:通过前面几篇文章,我们已基本掌握kotlin的基本写法与使用,但是在开发过程中,以及一些开源的API还是会出现大家模式的高阶玩法以及问题,如何避免,接下来讲解针对原来的文章进行一些扩展,解决大家在工作中遇到的问题,如何去解决如果还有人不了解kotlin,可以查看我的基础篇kotlin。Android......
  • android监听耳机按键
    app在前台的监听方式:@OverridebooleanonKeyDown(intkeyCode,KeyEventevent){if(Build.VERSION.SDK_INT>=Build.VERSION_CODES.LOLLIPOP){returnsuper.onKeyDown(keyCode,event);}switch(keyCode){caseKeyE......
  • Chrome模拟手机浏览器(iOS/Android)的方法
    1、在chrome的开发者工具模式下,点击左上角的手机图标切换成手机模式(或者F12然后Ctrl+Shift+M),一般这个方法访问绝大多数设限的网站。2、第一种方法不行,则安装Google插件User-AgentSwitcherforGoogleChrome3、https://blog.csdn.net/gb4215287/article/details/64438603......
  • Android脱壳基础知识
    JVM的类加载器:BootstrapClassLoader引导类加载器:C/C++代码实现的加载器,用于加载制定的JDK核心库,比如java.lang.*、java.util.*等这些系统类。Java虚拟机的启动就是通过Bootstrap,该ClassLoader在java里无法获取,负责加载/lib下的类ExtensionsClassLoader拓展类加载器:Java中的......
  • Android-APK反编译
    1.原理学习反编译之前,建议先学习一下Apk打包的过程,明白打包完成后的Apk里面都有什么文件,各种文件都是怎么生成的。Apk技术也有非常多的技术可以学习,主要都是围绕着如何减小体积,如何提高打包速度展开,这里先不多说了。下面是一张基本的Apk文件结构图。Apk文件本质上其实是一个zip......
  • Android - AXMLPrinter2.jar的使用方法
    我们需要查看打出的apk包中AndroidManifest.xml文件,但是打开之后发现是一大堆的乱码这是就需要反编译工具,AXMLPrinter2.jarAXMLPrinter2.jar官方介绍:AXMLPrinter2.jarapk分析APK文件,取得APK文件中的包名、版本号及图标,很强大的工具,再一次感受到了批处理的牛逼。可以将android......
  • 成品直播源码,Android实现监听Settings值变化的功能
    成品直播源码,Android实现监听Settings值变化的功能先创建一个内部类继承自ContentObserver   classSettingsContentObserverextendsContentObserver{    publicSettingsContentObserver(){      super(newHandler());    }    ......
  • Android Kotlin mapTo
     在Kotlin中,mapTo是一种用于将集合中的元素转换成另一个集合的函数。它可以将一个集合的元素映射到另一个集合,并将结果添加到目标集合中。mapTo的语法如下:fun<T,R,C:MutableCollection<inR>>Iterable<T>.mapTo(destination:C,transform:(T)->R):C其中:T是源集......
  • Android Debug (调试)注解处理器
     1.addremotedebugconfiguration2.copyjvmoptions:(-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=*:5005),andpasteittogradle.propertiesfile.  3.thenclickdebugbuttontoattachlocalhost:5005,expandthegradletasklist......