使用android-event-injector库,我编写了一个应用程序来在触发某些事件时注入一个触摸事件。问题是我需要在给定的绝对坐标处注入触摸View
,所以我执行以下操作来获取屏幕上的位置:
View v = /* find view*/;
int [] coords = new int[2];
v.getLocationOnScreen(coords);
这给了我屏幕上的绝对坐标。问题是触摸注入不起作用。
我可以在屏幕驱动程序中正确注入触摸,但由于某种原因,坐标被误解并且触摸被注入到其他地方。以下是一些示例(我的屏幕是 1024x600 横向):
- 坐标 (0,0) -> 注入 (0,0)
- 坐标 (0,600) -> 注入 (0,351)
- 坐标 (1024,0) -> 未注入(很可能 x 超出范围)
- 坐标 (1024,600) -> 未注入(很可能 x 超出范围)
- 坐标 (640,480) -> 未注入(很可能 x 超出范围)
- 坐标 (512,300) -> 注入 (872,175)
- 坐标 (100,100) -> 注入 (170,58)