我能在用户没有杀掉或关闭应用的情况下,将Android活动保持在后台。我想要检测特定硬件按钮点击事件,但是由于服务中不可用的KeyDown方法,所以需要将我的活动保持在后台,直到用户关闭应用程序。 Android允许此类行为吗?
更新:
我能使用以下方法解决这个问题:
1]使用前台服务, 参考: https://developer.android.com/guide/components/services.html#Foreground 2]在Android 21+之后使用以下方法处理媒体按钮单击(在前台服务的onCreate()中使用此代码):
更新:
我能使用以下方法解决这个问题:
1]使用前台服务, 参考: https://developer.android.com/guide/components/services.html#Foreground 2]在Android 21+之后使用以下方法处理媒体按钮单击(在前台服务的onCreate()中使用此代码):
mediaSession = new MediaSessionCompat(this, TAG);
mediaSession.setFlags(MediaSessionCompat.FLAG_HANDLES_MEDIA_BUTTONS);
mediaSession.setCallback(new MediaSessionCompat.Callback() {
@Override
public boolean onMediaButtonEvent(Intent mediaButtonEvent) {
if (mediaButtonEvent.getAction().equals(Intent.ACTION_MEDIA_BUTTON)) {
KeyEvent event = (KeyEvent) mediaButtonEvent.getParcelableExtra(Intent.EXTRA_KEY_EVENT);
if (KeyEvent.KEYCODE_HEADSETHOOK == event.getKeyCode() && event.getAction() == KeyEvent.ACTION_DOWN) {
Log.e(TAG, "Media Button clicked");
handleHeadphoneClick();
}
}
return false;
}
});
mediaSession.setActive(true);
参考文献:https://developer.android.com/guide/topics/media-apps/mediabuttons.html
这篇文章介绍了如何在 Android 应用程序中实现媒体按钮。Android 系统通常具有媒体按钮,例如播放、暂停和跳过按钮。开发人员可以轻松地将这些按钮集成到其应用程序中,以控制音频或视频播放。此外,该文章还提供了一些示例代码和有关如何添加自定义行为的指南。