服务中的关键监听器

时间:2013-10-13 13:17:26

标签: android service background volume keylistener

我是android的新手,我广泛搜索了这个。任何帮助将非常感激:) 我需要一个执行以下操作的应用程序:

作为侦听音量键(UP / Down)的服务在后台运行的应用程序。在此事件中,活动将显示在前台。

[我可以从一个Activity中执行此操作,但是活动必须在前台,并且只有在我按下音量按钮后才能进行祝酒。]

请帮助!!!

1 个答案:

答案 0 :(得分:0)

您可以创建一个侦听android.intent.action.MEDIA_BUTTON的BroadcastReceiver并注册一个意图过滤器来监听它:

<receiver android:name=".RemoteControlReceiver">
    <intent-filter>
        <action android:name="android.intent.action.MEDIA_BUTTON" />
    </intent-filter>
</receiver>

然后在接收器中处理更改:

public class RemoteControlReceiver extends BroadcastReceiver {
    @Override
    public void onReceive(Context context, Intent intent) {
        if (Intent.ACTION_MEDIA_BUTTON.equals(intent.getAction())) {
            KeyEvent event = (KeyEvent)intent.getParcelableExtra(Intent.EXTRA_KEY_EVENT);
            if (KeyEvent.KEYCODE_VOLUME_DOWN == event.getKeyCode()) {
                // Handle key press.
            }
        }
    }
}

请查看https://developer.android.com/training/managing-audio/volume-playback.html了解更多信息(此代码来自那里)

编辑:修复了KeyEvent键码常量