SoFunction
Updated on 2025-03-11

Android monitor lock screen, unlock, open screen function code

1. Define ScreenListener first

package ;
import ;
import ;
import ;
import ;
import ;
/**
* Created by ${zyj} on 2016/6/21.
*/
public class ScreenListener {
private Context mContext;
private ScreenBroadcastReceiver mScreenReceiver;
private ScreenStateListener mScreenStateListener;
public ScreenListener(Context context) {
mContext = context;
mScreenReceiver = new ScreenBroadcastReceiver();
}
/**
 * screen status broadcast receiver
 */
private class ScreenBroadcastReceiver extends BroadcastReceiver {
private String action = null;
@Override
public void onReceive(Context context, Intent intent) {
action = ();
if (Intent.ACTION_SCREEN_ON.equals(action)) { // Open the screen();
} else if (Intent.ACTION_SCREEN_OFF.equals(action)) { // Lock screen();
} else if (Intent.ACTION_USER_PRESENT.equals(action)) { // Unlock();
}
}
}
/**
 * Start listening to screen status
 *
 * @param listener
 */
public void begin(ScreenStateListener listener) {
mScreenStateListener = listener;
registerListener();
getScreenState();
}
/**
 * Get screen status
 */
private void getScreenState() {
PowerManager manager = (PowerManager) mContext
.getSystemService(Context.POWER_SERVICE);
if (()) {
if (mScreenStateListener != null) {
();
}
} else {
if (mScreenStateListener != null) {
();
}
}
}
/**
 * Stop screen status monitoring
 */
public void unregisterListener() {
(mScreenReceiver);
}
/**
 * Start screen status broadcast receiver
 */
private void registerListener() {
IntentFilter filter = new IntentFilter();
(Intent.ACTION_SCREEN_ON);
(Intent.ACTION_SCREEN_OFF);
(Intent.ACTION_USER_PRESENT);
(mScreenReceiver, filter);
}
public interface ScreenStateListener {// Return to the caller's screen status informationpublic void onScreenOn();
public void onScreenOff();
public void onUserPresent();
}
}

2. Use

package ;
import .;
import ;
import ;
public class MainActivity extends AppCompatActivity {
private ScreenListener screenListener ;
@Override
protected void onCreate(Bundle savedInstanceState) {
(savedInstanceState);
setContentView(.activity_main);
screenListener = new ScreenListener(  ) ;
(new () {
@Override
public void onScreenOn() {
(  , "Screen is on" , Toast.LENGTH_SHORT ).show();
}
@Override
public void onScreenOff() {
(  , "Screen is off" , Toast.LENGTH_SHORT ).show();
}
@Override
public void onUserPresent() {
(  , "Unlocked" , Toast.LENGTH_SHORT ).show();
}
});
}
}

The above is the relevant knowledge of Android monitoring lock screen, unlocking, and opening screen function codes introduced to you by the editor. I hope it will be helpful to everyone!