屏幕锁屏以及解锁时会分别发送两个广播SCREEN_ON和SCREEN_OFF,但是这两个action只能通过代码的形式注册才能被监听到,在AndroidManifest.xml中注册根本监听不到。
public class ScreenActionReceiver extends BroadcastReceiver { private String TAG = "ScreenActionReceiver"; private boolean isRegisterReceiver = false; @Override public void onReceive(Context context, Intent intent) { String action = intent.getAction(); if (action.equals(Intent.ACTION_SCREEN_ON)) { Logcat.d(TAG, "屏幕解锁广播..."); } else if (action.equals(Intent.ACTION_SCREEN_OFF)) { Logcat.d(TAG, "屏幕加锁广播..."); } } public void registerScreenActionReceiver(Context mContext) { if (!isRegisterReceiver) { isRegisterReceiver = true; IntentFilter filter = new IntentFilter(); filter.addAction(Intent.ACTION_SCREEN_OFF); filter.addAction(Intent.ACTION_SCREEN_ON); Logcat.d(TAG, "注册屏幕解锁、加锁广播接收者..."); mContext.registerReceiver(ScreenActionReceiver.this, filter); } } public void unRegisterScreenActionReceiver(Context mContext) { if (isRegisterReceiver) { isRegisterReceiver = false; Logcat.d(TAG, "注销屏幕解锁、加锁广播接收者..."); mContext.unregisterReceiver(ScreenActionReceiver.this); } } }
时间: 2024-10-09 03:53:23