Android的BroadcastReceiver的音量键上下 [英] Android BroadCastReceiver for volume key up and down

查看:1896
本文介绍了Android的BroadcastReceiver的音量键上下的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

如果用户presses音量键上下是有可能发现它在我的广播接收器?我需要完整的code。

If a user presses volume key up or down is it possible to detect it in my broadcast receiver? I need the full code.

下面是我的意图过滤器

IntentFilter filter = new IntentFilter();
filter.addAction("android.media.VOLUME_CHANGED_ACTION");

和我的的onReceive 方法

public void onReceive(Context arg0, Intent intent) {
      KeyEvent ke = (KeyEvent)intent.getExtras().get(Intent.EXTRA_KEY_EVENT);
        if (ke .getKeyCode() == KeyEvent.KEYCODE_VOLUME_UP) {
                System.out.println("I got volume up event");
         }else if (ke .getKeyCode() == KeyEvent.KEYCODE_VOLUME_DOWN) {
                System.out.println("I got volume key down event");
         }
    }

这给了我一个空的KeyEvent ......任何想法?

It gives me a null KeyEvent... any idea?

推荐答案

没有一个EXTRA_KEY_EVENT额外的意图。它有一个额外的android.media.EXTRA_VOLUME_STREAM_VALUE其中包含新卷。

The intent does not have an EXTRA_KEY_EVENT extra. It does have an extra android.media.EXTRA_VOLUME_STREAM_VALUE which contains the new volume.

int volume = (Integer)intent.getExtras().get("android.media.EXTRA_VOLUME_STREAM_VALUE");

如果您存储旧值,可以推断调高或调低音量是否pressed。

If you store the old value, you can infer whether volume up or down was pressed.

这篇关于Android的BroadcastReceiver的音量键上下的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆