我正在尝试创建一个应用程序,用户可以覆盖音量增大/减小按钮的默认行为(以及屏幕开/关按钮 - 这可能吗?)。无论如何,使用下面的代码我可以这样做:
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
super.onKeyUp(keyCode, event);
if ((keyCode == KeyEvent.KEYCODE_VOLUME_UP)) {
//this is where I can do my stuff
return true; //because I handled the event
}
return false; //otherwise the system can handle it
}
但我希望即使应用程序没有打开也是可能的,因此我为什么要设置一个广播接收器,或者为了实现这一点而在服务中粘贴一些东西。
感谢您的帮助。
答案 0 :(得分:2)
以及屏幕开/关按钮 - 这可能吗?
幸运的是,没有。
但是我希望即使应用程序没有打开也是可能的,因此我为什么要设置一个广播接收器,或者为了实现这一点而在服务中粘贴一些东西。
音量按钮无法使用。
例如,AndroSS允许您覆盖相机硬件按钮以截取屏幕截图。
那是相机按钮。如果前台活动没有使用相机按钮单击,则会转换为广播Intent
,其他应用程序可以侦听。此行为对于相机和媒体按钮是唯一的,不会与任何其他硬件按钮一起使用。
答案 1 :(得分:0)
这不是一个好主意。这意味着每当您按下音量增大/减小键时,无论您身在何处,都会捕捉它。如果我想改变我的铃声音量怎么办?媒体量?将摇杆用于其他用途的应用程序?它不会很好地工作,只会加剧人们。另外,我不确定它是否可行。
答案 2 :(得分:0)
这不是(容易)可能的,因为“onKeyDown”方法覆盖了Activity.onKeyDown()。因此,您必须有一个前台活动来接收这些函数调用。
我没有这方面的经验,但你必须更深入地编写自己的硬件密钥拦截/处理函数,因为你将无法访问活动类中的那个。 / p>
答案 3 :(得分:0)
这可能不会做你想要的,但如果你做了一个IME,IME可以捕捉音量+/-按钮,并做任何想做的事情,比如重新映射到其他按钮。例如,我修改了一个姜饼风格的IME来转动音量+/-按钮来在Kindle和Overdrive应用程序中进行翻页/翻页。