服务中的关键监听器

问题描述 投票:4回答:1

我是android新手,我广泛搜索过这个。任何帮助将不胜感激:)我要求一个应用程序执行以下操作:

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

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

请帮忙!!!

android service background volume keylistener
1个回答
0
投票

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

<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键码常量

© www.soinside.com 2019 - 2024. All rights reserved.