【发布时间】:2016-05-03 06:12:19
【问题描述】:
我不是在寻找一段特定的代码,而是在寻找从哪里开始我的研究的提示。对于有经验的安卓开发者来说,我想做的事情可能很容易。
我只想在比 Dalvik 引擎更低的级别上记录所有硬件按钮交互。我是 Android 开发的新手,从未在 Linux/Unix 基础上开发过,但我对 C 语言的经验很少。
我经常发现有人问他们如何在他们的应用程序中使用电源按钮,而我发现一般来说这是不可能的,或者至少不应该这样做,因为系统本身会捕捉到电源按钮的按下和不会将其交给在 Java VM 中运行的应用程序或服务(与按下音量控制按钮不同,您可以为其键事件注册一个监听器)。
但是,我想编写一个简单的过程或任何符合要求的方法来记录所有按钮的按下(音量控制、电源按钮或设备上可用的任何硬件按钮)。
现在,由于我对这个主题很陌生,而且我目前的知识有限,所以我的第一个想法是要么拥有一个 linux 进程或一个内核扩展来完成这项工作。稍后我可能想填充我自己的消息、事件或任何我可以通过 JNI 在应用程序或后台服务中接收的内容(如果我理解正确的话)。
所以这是我的问题:在不干扰默认系统功能的情况下,我必须做什么才能捕获硬件按钮交互并将它们用于我自己的目的(记录文本消息)?一个库、一个进程、一个内核扩展或者我还没有想到的完全不同的东西?非常感谢任何想法或提示。
亲切的问候 扬·蒂勒曼
【问题讨论】:
-
正如它所说,这听起来像是一个题外话,属于其他地方(例如,超级用户)。
-
从 /dev/input/eventX 读取? (select(), poll()) - kernel.org/doc/Documentation/input
标签: java android linux android-hardware