gpt4 book ai didi

android - 屏幕关闭时调用 BroadCast 接收器

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

我正在做一个如果我们摇动手机就锁屏的应用程序,我已经写了屏幕关闭的代码,但现在的问题是我需要一个广播接收器来检查屏幕是关闭还是打开,我怎么能做吗?

最佳答案

如果您需要在特定时刻检查屏幕是否关闭或打开,这里有一个很好的方法,无需注册接收器

PowerManager powerManager = (PowerManager) getSystemService(POWER_SERVICE);
boolean isScreenOn = powerManager.isScreenOn();
if (!isScreenOn) {//lock screen
//do something
}

如果您想在屏幕关闭时收听,则需要注册一个接收器。对于 Intent.ACTION_SCREEN_OFF 和 Intent.ACTION_SCREEN_ON 你不能在你的 Android Manifest 中声明它们,但它们必须在你的 JAVA 代码中的 IntentFilter 中注册,并且不需要添加任何权限

public class ScreenReceiver extends BroadcastReceiver {

public static boolean wasScreenOn = true;

@Override
public void onReceive(Context context, Intent intent) {
if (intent.getAction().equals(Intent.ACTION_SCREEN_OFF)) {
// do whatever you need to do here
wasScreenOn = false;
} else if (intent.getAction().equals(Intent.ACTION_SCREEN_ON)) {
// and do whatever you need to do here
wasScreenOn = true;
}
}

}

然后在你的activity的onCreate中注册receiver

  @Override
protected void onCreate() {
//your code
BroadcastReceiver mReceiver = new ScreenReceiver();
registerReceiver(mReceiver, filter);
}

并在 onDestroy 中注销你的 Activity

 @Override
protected void onDestroy() {
//your code
unregisterReceiver(mReceiver);

}

希望对你有帮助。

关于android - 屏幕关闭时调用 BroadCast 接收器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14351827/

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