首页 > 解决方案 > 触发手动事件的android后台服务

问题描述

我最近发现我可以使用 OTG 适配器将无线键盘和鼠标与手机连接起来。我的手机现在有一个随时可用的物理键盘和一个光标。

我很好奇是否可以重新路由键盘输入以在不用于实际打字时执行不同的手动触摸事件。例如,我希望各种按键触发在适当区域的手动点击,以在 PUBG mobile 中进行重新加载、蹲伏、射击、移动等。

在活动活动中,我可以捕获键盘事件,如下所示:

public class MainActivity implements KeyEvent.Callback {
    @Override
    public boolean onKeyUp(int keyCode, KeyEvent event) { ... }
    @Override
    public boolean onKeyDown(int keyCode, KeyEvent event) { ... }
    @Override
    public boolean onKeyMultiple(int keyCode, int count, KeyEvent event) { ... }
    @Override
    public boolean onKeyLongPress(int keyCode, KeyEvent event) { ... }
}

我不熟悉Android上的后台操作,但是查看后台服务的开发人员页面明确指出:

它不能直接与您的用户界面交互。要将其结果放入 UI,您必须将它们发送到 Activity。

工作请求按顺序运行。如果一个操作正在 IntentService 中运行,并且您向它发送另一个请求,则该请求会一直等待,直到第一个操作完成。

这两个限制都阻止了后台服务成为我的键盘技巧的可行选择,更不用说我不知道​​如何在这些服务中捕获键盘事件。

我还有什么其他选择?

另外,我会因为成功设置这样的东西而被 PUBG 手机禁止吗?

标签: androidkeyboardkeyboard-eventsusb-otg

解决方案


推荐阅读