onKeyDown/dispatchKeyEvent - 我尝试在Activity上重写onKeyDown和dispatchKeyEvent方法,但这些方法在锁屏时都不会执行,只有当我的应用程序获得焦点时才有效。
Settings.System.CONTENT_URI/ContentObserver - 在主活动的内容解析器上注册内容观察器确实可以捕获系统设置更改,但这也不会发生在锁屏时。
android.intent.action.MEDIA_BUTTON - 在清单中设置此过滤器,我能够从锁屏接收到播放/暂停操作,但无法接收音量更改事件。
android.media.VOLUME_CHANGED_ACTION - 在清单中设置此过滤器,此事件将在我的广播接收器中接收,但不幸的是,在锁屏时其额外值永远不会改变。即使我不断按音量按钮,返回的android.media.EXTRA_VOLUME_STREAM_VALUE仍然相同(即始终为1),尽管广播接收器接收到了CHANGED动作。
CastVideos-android - 参考Android发送方应用似乎能够在接收方上控制音量,即使从发送者的锁屏上进行控制,但是即使在Cast.CastApi.setVolume()周围放置断点,也无法捕获它们。因此,看起来命令是从我无法找到的地方发送到接收器。
我还可以看到其他应用程序能够捕获硬件音量键,例如播放音乐应用程序。因此,我的设备肯定有能力...
有人可以建议任何有效的解决方案吗?