admin管理员组

文章数量:1531452

2024年6月29日发(作者:)

说说android下TV版本UC浏览器模拟鼠标的实现

说说android下TV版本UC浏览器模拟鼠标的实现

无意中下载了一个TV版本的UC浏览器安装到机顶盒上,顺便体

验了一把。感觉吗还行,原先以为UC浏览器会针对Android下TV的

遥控器操作浏览网页会做出一些优化或者对网页做出一些重新编码什

么的,但是结果不是原来是通过遥控器控制然后在Android下TV端

模拟鼠标操作。

说到Android下模拟鼠标操作,想到我以前也做过这么一个项目

就是在手机端开发一个客户端然后模拟鼠标操作Android下的TV,这

个也是类似于TV版本的UC浏览器的操作方式。实现该功能的原理就

是通过在linux下模拟按键和鼠标

输入(因为Android是跑在linux下的所以该原理也是同样适合

的)。至于原理我这里就不多介绍了,感兴趣的朋友可以到网上查找

查找,我这里为了节约大家的时间贴出了一篇

/chenzhixin/article/details/2173530。

现在进入正题,既然是通过在linux下模拟按键和鼠标输入,但是

Android是java语言开发的怎么才能调用到linux层去呢,大家可能

想到了我们可以通过JNI调用到底层啊。是的,我这里也是这么实现

的。看来JNI确实是一个好东西啊!Android下对于JNI的注册有两

种方法,一种是静态注册一种是动态注册,其中在Android的源码中

采用的比较多的是动态注册。关于这两种注册方式我在这里就不多做

罗列了。我这里采用的是第一种方法静态注册,先来看看我这里提供

的本地方法,如下所示:

/ ****************************************

* @author Administrator

*功能:通过jni调用实现远程模拟鼠标功能

***************************************/

public class MouseUtils

{

public native void mouse_clck(int type, int code , int value);//

鼠标点击

public native void mouse_move(int type, int code , int

value);//鼠标点击

public native void mouse_open();//打开鼠标

public native void mouse_close();//关掉鼠标

}

那么接下来的重点就是通过C语言来实现这些本地方法了,至于

在Android层何时调用这些方法那就是业务层的

事了,下面的代码就是我用C语言实现的上述本地方法了,其中

的input.h和uinput.h可以在linux下找到,这里我就不放在上面了。

#include

#include

#include"tils.h"

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

本文标签: 鼠标模拟实现浏览器版本