今天在维护公司的一个小项目的时候,发现按公司手机的某个物理按键,激活相应的Service后,会在屏幕上模拟的点击了屏幕的某个坐标点。好家伙,原来是之前该项目的版本是按这个物理按键后,会弹出一个对话框,提示用户需要打开某些服务,然后出于良好的用户体验,直接模拟点击事件,点击该对话框,不让用户做多余的操作。
但是后期版本的改动,该功能不需要了,但是代码可能没有改动完全,因此出现了上述bug。查看代码发现,原来是执行了下面的代码才模拟出在屏幕上的点击事件。
Runtime.getRuntime().exec("input tap " + mPositiveButtonX + " " + mPositiveButtonY);
其中mPositiveButtonX是要点击的x坐标,mPositiveButtonY是要点击的y坐标。
修复此bug,就是将上述代码处注释掉即可。
===============================