如何从安卓模拟器获取鼠标悬停事件



如何获取鼠标的x和y坐标。

我在安卓中有一个服务,它通过 eneter 消息传递框架连接到 .net 应用程序。我想要服务中鼠标的 x 和 y 位置。我不仅想要点击鼠标的位置,还想要鼠标悬停时的位置。

非常感谢

也许不是最好的解决方案,但至少它有效。这两种解决方案都基于Genymotion模拟器。

解决方案#1

  1. 您需要安装Genymotion模拟器。
  2. 从 VirtualBox 应用程序运行模拟器,稍等片刻,直到您看到几行,例如"init:未跟踪的 pid ...退出"
  3. 从Genymotion启动器运行相同的模拟器
  4. 现在,您可以通过在VirtualBox应用程序窗口(不是genymotion窗口)中移动鼠标来模拟鼠标。

根据您在执行步骤3之前等待的时间,android可以出现在genymotion或虚拟盒子窗口中。

解决方案#2

  1. 您需要安装Genymotion模拟器。
  2. 运行VirtualBox应用程序,转到您的虚拟盒子"android模拟器":

    Settings -> Display -> Remote Display -> Check Enable Server
    
  3. 通过 genymotion 启动器运行安卓模拟器。
  4. 通过以下方式连接到您的虚拟盒子:

    $ rdesktop -a 16 localhost:3389
    

当您在 rdesktop 中移动光标时,您可以在 genymotion android 模拟器窗口中看到指针。现在,您可以拦截悬停事件。

也许有一个更好的解决方案 - 禁用虚拟机的鼠标集成,因此,virtualbox 可以抓取鼠标光标,例如:

$ VBoxManage modifyvm "your-vm-name" --mouse ps2

但它对我不起作用,也许 Genymotion 启动器会在每次启动时覆盖设置?

链接:http://developer.android.com/reference/android/view/View.OnHoverListener.html

附言悬停事件从 API 14 开始可用。

您也可以在Live CD模式下使用Android x86(或使用Windows在双启动模式下安装它)。

最新更新