要搞定外設鼠標點擊屏幕上的指定位置,就需要確定鼠標指針在屏幕上絕對坐標. 理論上HID是可以發送絕對坐標使鼠標指針直接移動到指定的位置.但是目前我還沒搞明白要怎么發送16進制的數據才能使用絕對坐標. 但偶然間找到了一個安卓VIEW的方法可以監聽到鼠標指針的位置...順便記錄一下這個方法.
利用view的OnGenericMotionListener方法給view設置一個監聽,當鼠標在這個view上移動的時候. view就能獲取到鼠標的絕對位置.但是缺點就是在安卓8.0 以后,懸浮窗全屏的時候是無法覆蓋到狀態欄的, 這也就導致鼠標在狀態欄上移動的時候無法獲取到鼠標的坐標...
我也沒有找到比較好的方法來覆蓋掉狀態欄...安卓7.0倒是可以覆蓋到狀態欄. 在懸浮窗覆蓋到的地方移動鼠標指針,就可以獲取到鼠標指針的實時位置了.
在執行項目的時候,可以先開啟一個"全屏"的懸浮窗,然后通過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);
希望大家有個愉快的周末....
-
鼠標
+關注
關注
6文章
591瀏覽量
39912 -
VIEW
+關注
關注
0文章
7瀏覽量
9964 -
安卓
+關注
關注
5文章
2136瀏覽量
57599
發布評論請先 登錄
相關推薦
評論