How to reveal that screen is locked?

后端 未结 3 2046
日久生厌
日久生厌 2020-12-28 10:35

In my application I need to know when device is locked (on HTC\'s it looks like short press on \"power\" button). So the question is: which event is triggered when device is

相关标签:
3条回答
  • 2020-12-28 10:41

    In addition to the above answer, in-case you want to trigger some action when your app is at the foreground:

    You could use the event called onResume() to trigger your own function when your app takes the spotlight from a previously resting state, i.e, if your app was at the background(paused/minimized...)

    protected void onResume()
    {
        super.onResume();
    
        //call user-defined function here
    }
    
    0 讨论(0)
  • 2020-12-28 10:46

    You should extend BroadcastReceiver and implement onReceive, like this:

    public class YourBroadcastReceiver extends BroadcastReceiver {
        @Override
        public void onReceive(Context context, Intent intent) {
            if (Intent.ACTION_SCREEN_OFF.equalsIgnoreCase(intent.getAction())) {
                //screen has been switched off!
            }
        }
    }
    

    Then you just have to register it and you'll start receiving events when the screen is switched off:

    IntentFilter filter = new IntentFilter(Intent.ACTION_SCREEN_ON);
    filter.addAction(Intent.ACTION_SCREEN_OFF);
    appBroadcastReceiver = new AppBroadcastReceiver(yourActivity);
    registerReceiver(appBroadcastReceiver, filter);
    
    0 讨论(0)
  • 2020-12-28 10:52

    There is a better way:

    KeyguardManager myKM = (KeyguardManager) context.getSystemService(Context.KEYGUARD_SERVICE);
    if( myKM.inKeyguardRestrictedInputMode()) {
     //it is locked
    } else {
     //it is not locked
    }
    
    0 讨论(0)
提交回复
热议问题