跨一系列状态接受Android volume rocker输入
我有一个应用程序,它通常是唯一一个使用设备(Android 4.2及以上)的应用程序。在以下情况下,它需要能够接受来自音量调节器的输入:跨一系列状态接受Android volume rocker输入,android,lockscreen,wakelock,android-wake-lock,keyguard,Android,Lockscreen,Wakelock,Android Wake Lock,Keyguard,我有一个应用程序,它通常是唯一一个使用设备(Android 4.2及以上)的应用程序。在以下情况下,它需要能够接受来自音量调节器的输入: 应用程序位于前台 应用程序在后台 锁屏或键盘已接合 屏幕已关闭(即空闲模式) (1) 通过监听活动中的按键事件可以轻松解决此问题 (2) 可以通过收听android.media.VOLUME\u CHANGED\u ACTION部分解决(是的,我知道它不是公共API,但它可以在我测试过的所有设备上运行,我找不到替代方案)。但在我的Nexus5(Android
FLAG\u discover\u KEYGUARD
和FLAG\u SHOW\u WHEN\u LOCKED
来缓解此问题,以避免锁定屏幕和键盘
(4) 当应用程序位于前台时,可以使用WindowManager标记保持屏幕打开来忽略显示超时,从而部分缓解此问题。但不幸的是,用户意外地手动关闭屏幕电源是一种常见事件,即使使用唤醒锁定
也不允许通过android.media.volume\u CHANGED\u ACTION
在屏幕空闲时接收音量摇杆事件
因此,问题是:
我如何确保第一次按下音量摇杆传递给我的应用程序,而不是被音量对话框捕获和使用
当屏幕空闲时,如何接收音量调节器事件