English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Summary of Methods to Determine Screen On/Off Status in Android

Android Screen On/Off Status Detection

 Method One: Use System Service

PowerManager pm = (PowerManager) mContext.getSystemService(Context.POWER_SERVICE);
    if(!pm.isScreenOn())
    {
      //Screen off state
    }

Method two: Use broadcast

public class ScreenReceiver extends BroadcastReceiver {
  @Override
  public void onReceive(Context context, Intent intent) {
    if (intent.getAction().equals(Intent.ACTION_SCREEN_OFF)) {
//Received screen on broadcast
    } else if (intent.getAction().equals(Intent.ACTION_SCREEN_ON)) {
//Received screen off broadcast
    }
  }
  }
//Register Broadcast
ScreenReceiver sOnBroadcastReciver=new ScreenReceiver();
    IntentFilter recevierFilter=new IntentFilter();
    recevierFilter.addAction(Intent.ACTION_SCREEN_ON);
    recevierFilter.addAction(Intent.ACTION_SCREEN_OFF);
    registerReceiver(sOnBroadcastReciver, recevierFilter);
//Unregister
if(sOnBroadcastReciver!=null)
    {
      unregisterReceiver(sOnBroadcastReciver);
    }

Note: Broadcasts for screen on and screen off can only be received through dynamic registration.

Thank you for reading, I hope it can help everyone. Thank you for your support to our website!

You May Also Like