首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >android下检测硬件音量按键事件

android下检测硬件音量按键事件
EN

Stack Overflow用户
提问于 2016-01-04 21:12:17
回答 3查看 11K关注 0票数 4

我正在开发一个应用程序,每当硬件音量按钮被按下时,就会听到音量事件。app可以在前台也可以在后台。我已经关注了this,但它不能正常工作。以下是我面临的问题

1)如果我按一次音量键-事件会被触发4-6次。

2)如果当前音量是最大值,并且我增加了音量,则事件不会触发。

请帮帮我。

EN

回答 3

Stack Overflow用户

发布于 2016-01-04 21:17:28

尝试使用以下代码-

代码语言:javascript
复制
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
    if ((keyCode == KeyEvent.KEYCODE_VOLUME_DOWN)){
        //Do something
    }
    return true;
}

背景- any way to detect volume key presses or volume changes with android service?

票数 12
EN

Stack Overflow用户

发布于 2016-05-23 09:53:03

在有根的设备上,您可以使用Xposed框架将自己挂接到PhoneWindowManager中。Xposed Torch模块就是一个很好的例子。只需反编译它,看看他们是如何做事情的。

票数 0
EN

Stack Overflow用户

发布于 2016-01-04 21:34:31

你可以通过轮询AudioManager的当前数量来检测它,这不是一个好的解决方案,但我不知道更好的解决方案。

代码语言:javascript
复制
private Handler handler;
public int volume;

private Runnable volumeUpdater = new Runnable() {
    private int updatesInterval = 100;      
    @Override
    public void run() {
        if(volume != audioManager.getStreamVolume(AudioManager.STREAM_MUSIC)){
            //volume changed put logic here
        }
        handler.postDelayed(volumeUpdater, updatesInterval);
    }
};
票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/34591987

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档