我的仪器正在启动一项活动来检测它,但我似乎无法找到一种优雅的方式来判断何时可以安全地开始发送我的MotionEvent
。此刻,我不断发送它MotionEvent
,然后捕获错误的应用程序收到它们时抛出的SecurityException
。
这种方法的问题在于,当第一个事件通过时,应用程序会响应它,所以这个方法并非没有副作用......
我正在考虑尝试用UID做一些事情,但我不知道在哪里寻找它。
答案 0 :(得分:1)
您可以利用在您的Activity上调用的标准Android生命周期方法。你可以在onResume()中设置一个'infront'标志,并在onPause()中清除它。然后,您的检测测试只检查该标志以了解何时发送MotionEvents是安全的。
如果你不想通过专门为测试目的放入代码来污染你的应用,请创建一个子类,覆盖onResume / onPause,设置标志,然后调用super。