调用安卓的方法获取鼠标指针坐标

描述

要搞定外设鼠标点击屏幕上的指定位置,就需要确定鼠标指针在屏幕上绝对坐标. 理论上HID是可以发送绝对坐标使鼠标指针直接移动到指定的位置.但是目前我还没搞明白要怎么发送16进制的数据才能使用绝对坐标. 但偶然间找到了一个安卓VIEW的方法可以监听到鼠标指针的位置...顺便记录一下这个方法.

利用view的OnGenericMotionListener方法给view设置一个监听,当鼠标在这个view上移动的时候. view就能获取到鼠标的绝对位置.但是缺点就是在安卓8.0 以后,悬浮窗全屏的时候是无法覆盖到状态栏的, 这也就导致鼠标在状态栏上移动的时候无法获取到鼠标的坐标...

VIEW

我也没有找到比较好的方法来覆盖掉状态栏...安卓7.0倒是可以覆盖到状态栏. 在悬浮窗覆盖到的地方移动鼠标指针,就可以获取到鼠标指针的实时位置了.

VIEW

在执行项目的时候,可以先开启一个"全屏"的悬浮窗,然后通过hid协议让鼠标移动一个像素.获取到鼠标的绝对位置...然后再关闭悬浮窗即可,这样获取到第一个鼠标的确切坐标后. 后面就能通过计算得到所有的绝对位置. 从而和autojs配合来点击和滑动操作.

以下是悬浮窗的代码...

var w = floaty.rawWindow(
    <frame id="top" bg="#CC000000" />
);


ui.run(()=>{
    //设置悬浮窗全屏
    w.setSize(-1, -1);
    //要设置悬浮窗拦截点击事件,才可以监听到鼠标移动事件
    w.setTouchable(true);
});


var points = {}
w.top.setOnGenericMotionListener(function(v, event) {
    points.x = event.getX().toFixed(2);
    points.y = event.getY().toFixed(2);
    console.log("鼠标: " , points);
    return false;
});


setTimeout(() => {
    w.close();
}, 60000);

希望大家有个愉快的周末....

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分