gpt4 book ai didi

android - 当应用程序在后台时监听 dispatchKeyEvent

转载 作者:太空宇宙 更新时间:2023-11-03 13:44:17 24 4
gpt4 key购买 nike

我正在编写的应用程序必须监听来 self 的应用程序外部的物理硬件按钮点击事件。我的设备有一个我正在尝试使用的专用 SOS 按钮

到目前为止,我可以在我的应用程序中使用 dispatchKeyEvent 但这并不好,我需要找到一种方法在我的应用程序处于 后台时监听这个关键事件.

@Override
public boolean dispatchKeyEvent(KeyEvent event) {

// sos button code = 80;
if(event.getKeyCode() == 80){
// SOS button clicked
// run function here.
Toast.makeText(this, "SoS button clicked.", Toast.LENGTH_SHORT).show();
}
return super.dispatchKeyEvent(event);
}

任何帮助将不胜感激!谢谢。

最佳答案

我还不能发表评论,因为我没有 50 个声誉,所以很抱歉在这里添加了字符串。所以我也在做这方面的工作,我可以分享我所做的。

首先,我们查看了位于/system/usr/keylayout 文件夹中的 Generic.kl 和其他键盘布局文件。我们可以在这里轻松更改任何按钮的行为,但当然您只能使用主要的系统命令,如 CAMERA、VOLUME_UP、SEARCH 等。

因此您无法直接从此处运行应用。

所以我们转向了 init.rc 文件,你可以通过破解打开主 ROM 上的 boot.img 找到它。这里有一个很棒的主题:

Running app from button press

所以我们在/system/bin 文件夹中添加了一个脚本。我通过在 shell 中手动运行来检查脚本运行情况。我还使用基本回显脚本进行了测试。

然后我们在 init.rc 文件中添加了该服务,但它没有工作。事实上,我们试图改变监听的按钮,但没有任何效果。非常令人沮丧,因为 Android 在这里编写的服务完全相同。我们确保我们也删除了对 .kl 文件中按钮的所有引用,以防它们覆盖 init.rc 服务。

所以 init.rc 文件中的服务一定是罪魁祸首,但还不确定为什么。所以仍然卡住了,很近,但又很远!!

关于android - 当应用程序在后台时监听 dispatchKeyEvent,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45757616/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com