gpt4 book ai didi

java - 当手机处于深度 sleep 时接收音量键按下事件

转载 作者:行者123 更新时间:2023-11-29 03:40:48 26 4
gpt4 key购买 nike

我正在尝试在手机处于深度 sleep 模式时捕捉音量调高/调低按下事件。我已经阅读了几篇文章,这里是我所做的。

在 Activity onCreate 方法中我设置了一个 WakeLock

PowerManager mgr = (PowerManager)this.getSystemService(Context.POWER_SERVICE);
WakeLock wakeLock = mgr.newWakeLock(PowerManager.PARTIAL_WAKE_LOCK, "MyWakeLock");
wakeLock.acquire();

我已经读到,即使我的屏幕被锁定,如果我设置了这个,我的应用程序也会响应事件。我还向 Android Manifest 添加了权限。

<uses-permission android:name="android.permission.WAKE_LOCK" />

然后在 onCreate 方法中声明我的广播接收器

VolReceiver volumeBroadcastReceiver = new VolReceiver();

IntentFilter filter = new IntentFilter();
filter.addAction("android.media.VOLUME_CHANGED_ACTION");
registerReceiver(volumeBroadcastReceiver, filter);

这一切都很好,然后应用程序处于前台或后台,但后来我通过按下电源按钮锁定我的手机屏幕应用程序停止接收广播事件,我认为 PowerManager 必须解决这个问题但事实并非如此。所以请帮助我,提供一些信息。

最佳答案

I'm trying to catch Volume Up/Down pressing events when phone is in deep sleep mode.

根据定义,这是不可能的。

In Activities onCreate method I set a WakeLock

那么你没有处于 sleep 模式。

then I lock my phones screen by pressing on a power button application stop receiving broadcast events

这里有几种可能性。一是您的进程已终止,因为不再需要它。一旦您不再有任何前台 Activity ,您的进程就有资格终止以为其他应用程序释放内存,这随时可能发生。另一种可能性是 Android 在屏幕关闭时根本不发送该广播。

关于java - 当手机处于深度 sleep 时接收音量键按下事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13248826/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com