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!