屏幕锁屏以及解锁时会分别发送SCREEN_ON
和SCREEN_OFF
广播,但是这两个广播只能通过代码的形式注册才能被监听到,在AndroidManifest.xml
中注册根本监听不到。
public class ScreenActionReceiver extends BroadcastReceiver {
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);
}
}
}