我正在使用Android Stick(http://www.geekbuying.com/item/Uhost-2-Dual-Core-TV-Box-Mini-PC-Android-4-0-4-RK3066-Cortex-A9-1-6GHZ-1GB-RAM-4G-ROM-with-Bluetooth-WIFI-Skype-XBMC---Black-312467.html)来构建应用程序。该应用程序使用附加的USB网络摄像头来实现其中的一些功能。此外,我将鼠标连接到此设备,用户可以使用该设备浏览应用程序中的各个页面。鼠标的左/右移动导致导航到上一页/下一页。
当鼠标与Android设备配合使用时,我还需要在每次与用户交互后将鼠标位置重置为中心。是否可以使用Android中的软件设置鼠标位置?我正在使用View.OnGenericMotionListener
捕获鼠标移动。
目前,我还需要执行主鼠标按钮单击以将鼠标置于应用程序内。我想通过在软件中生成主鼠标按钮来删除此要求,或者通过其他方式将应用程序带入软件中。
我无法找到任何API来实现上述功能。任何有关这些的帮助都非常有用。
为了防止我需要编写某种驱动程序来使这个东西正常工作,这方面的任何帮助也会有用。
在使用鼠标的同时解决此问题的任何变通方法也可能有用。
答案 0 :(得分:3)
鼠标事件由系统框架管理。你无法在Java端控制它。
在adb shell上你可以打开/ dev / input / uevent设备来编写鼠标事件包括
但是,除非您在root设备上执行此操作,否则不能将其作为普通应用程序执行,或者您可以使用adb shell在后台启动守护程序服务以执行应用程序的事件编写。
答案 1 :(得分:0)
我还需要在每次与用户互动后将鼠标的位置重置到中心。
现在可以通过Android 8.0+(2017年8月发布)中的pointer capture API来实现。摘要:
要请求捕获指针,请在视图上调用requestPointerCapture()方法。
捕获指针的请求成功后,Android会调用onPointerCaptureChange(true),并开始传递鼠标事件。
您的焦点视图可以通过执行以下任务之一来处理事件:
如果您使用的是自定义视图,请覆盖onCapturedPointerEvent(MotionEvent)。
否则,注册一个OnCapturedPointerListener。
您的应用中的视图可以通过调用releasePointerCapture()来释放指针捕获。