Android卷密钥事件捕获

Android卷密钥事件捕获,android,cordova,phonegap-plugins,Android,Cordova,Phonegap Plugins,我目前正在为android开发一个应用程序 当用户在android手机中按下时,我如何捕捉音量按键事件 我正在使用电话间隔..您可以在电话间隔中为音量键按钮添加事件侦听器,如电话间隔文档中所述,如 感谢Phonegap API文档中提到的,以下代码仅适用于Blackberry: document.addEventListener("volumeupbutton", yourCallbackFunction, false); document.addEventListener("volumedow

我目前正在为android开发一个应用程序

当用户在android手机中按下时,我如何捕捉
音量
按键事件


我正在使用电话间隔..

您可以在电话间隔中为音量键按钮添加事件侦听器,如电话间隔文档中所述,如


感谢Phonegap API文档中提到的,以下代码仅适用于Blackberry:

document.addEventListener("volumeupbutton", yourCallbackFunction, false);
document.addEventListener("volumedownbutton", yourCallbackFunction, false);
但检查一下也没什么坏处。它可能适用于最新的Phonegap SDK


希望这有帮助

使用以下代码获取密钥事件

在现有java类中使用此代码

@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {

    //If volume down key
    if (keyCode == KeyEvent.KEYCODE_VOLUME_DOWN) {
        this.loadUrl("javascript:cordova.fireDocumentEvent('volumedownbutton');");
        return true;
    } else if (keyCode == KeyEvent.KEYCODE_VOLUME_UP) {
        this.loadUrl("javascript:cordova.fireDocumentEvent('volumeupbutton');");
        return true;
    } else {
        //return super.onKeyDown(keyCode, event); 
    }
    //return super.onKeyDown(keyCode, event);

    return true;
}
并在您的html页面中使用以下内容

document.addEventListener("volumeupbutton", onVolumeUpKeyDown, false);  

document.addEventListener("volumedownbutton", volumedownbutton, false);

function    onVolumeUpKeyDown()
{
    alert("Working Up")     
}

function    volumedownbutton()
{
    alert("Working Down")       
}

我从这里得到了这个答案

你在给我的链接中看到了吗
支持的平台BlackBerry WebWorks(OS 5.0及更高版本)
我已经试过了,但没有working@AppMobiGurmeetvaahost是正确的,它将不起作用您有任何其他解决方案现在它与最新版本一起工作检查文档6.0.0您使用的是哪个版本的phonegap?嘿,我正在尝试将其添加到我的类中,但我得到:“KeyDown上的方法必须重写或实现一个超类型方法”。我缺少什么?我的插件类命名为:公共类AudioAPI扩展CordovaPlugin{…}我不需要扩展活动来使用该事件吗?@leo2_uru您必须在主类文件[mainclass.java]中添加代码谢谢,但它也不起作用。你是说在mainclass中有“公共类AudioAPI扩展CordovaPlugin{}”实现的那个吗?我试图在那个类中添加它,但仍然得到相同的错误。我应该从中扩展的类应该是活动,对吗?谢谢!我将它添加到了“main”中Java文件,它现在可以工作了:一个带有“public class AudioDemo extensed CordovaActivity”声明的文件。我不知道这个文件,因为我正在创建一个自定义Cordova插件,稍后将在Telerik/appbuilder应用程序上使用。你知道我应该如何将覆盖添加到自定义插件中吗?可能吗?也许问题在于我缺乏Java知识,因为我知道我必须创建一个从CordovaActivity扩展而来的类,但我不知道我在自定义插件上是否做得很好。。。