是否右键单击插入android(ics)的USB鼠标始终指定为“后退”按钮?我有一个平板电脑,但不是。
我想删除状态栏,仍然可以使用带有USB鼠标的平板电脑。
有谁知道在android中配置行为的位置/方式?
答案 0 :(得分:9)
迟到的答案,但答案是肯定的。我将提供有关此主题的更多详细信息,因为它是此类互联网上的 only 主题。
默认行为:Android会将此视为后退按钮,没有可见的异常。
对于手机和普通应用来说,这是一个非常不错的功能。但是,有两种类型的人希望以不同的方式实现此功能。 Modders和应用程序开发人员。
修改程序'修复:在有根设备上(并且可能无法使用未锁定的adb的少数失效设备),请观察Generic.kl
下的/system/usr/keylayout
。搜索标记KEY_BACK
,链接到它的多行上可能有多个密钥代码。对我来说,key 158
带有WAKE_DROPPED
标志。对于通用的“右键单击”功能,您需要交换后退键和菜单键的数字代码,因此当鼠标发送后退键命令时,系统将实际触发菜单键命令,同时保持一些用于返回的设备上的硬件密钥(标记为菜单键)。是的,这将反转手机上的硬件键,但这是最简单的解决方案,无需重建整个ROM。如果这是出于公司或专业原因,请参阅此文章:Overriding Mouse Events Kernel-Level。我实际上建议创建一个Xposed模块来覆盖它们引用的过程。否则,请查看如何重新映射密钥代码,抱歉,我在这里找不到直接的文章。
App-developers'修复:非root:覆盖应用程序中的返回键并返回true。在onBackPressed()
覆盖中,执行必要的任何右键单击功能。简单!由于您最有可能想要类似PC的上下文菜单功能,因此您还需要通过应用于根视图的MotionEvent侦听器跟踪鼠标所在位置,并存储event.getRawX()
和RawY()调用值为全局变量。然后,您可以通过设置顶部和左侧边距并将其设置为可见,将上下文菜单(大小为ListView或VerticalLinearLayout)放置在光标下。如果要通过右键单击(例如删除或复制)在布局中的悬停对象上执行辅助功能,则必须手动确定存储的鼠标坐标悬停在哪个对象上。您可能必须在每个受影响的对象上添加MotionEvent.ACTION_HOVER_ENTER
侦听器,并将对象ID存储在全局变量中,以便在调用onBackPressed()函数时使用。 (我有空的时候会提供代码!)
希望这可以帮助任何人探索这样一个特定主题! :)