实现方法:1)通过BroadcastReceiver接收广播Intent.ACTION_SCREEN_ON和Intent.ACTION_SCREEN_OFF可以判断屏幕状态是否锁屏,但是只有屏幕状态发生改变时才会发出广播;
2)如果要在屏幕状态发生改变之前就想获取屏幕状态,可以通过反射机制调用PowerManager的isScreenOn方法 。
具体实现,见代码:
实现Screen状态监听的类ScreenObserver,实现如下:
测试ScreenObserver功能的示例类ScreenObserverActivity,实现如下:
- package com.isoft.screen;
-
- import android.app.Activity;
- import android.os.Bundle;
- import android.util.Log;
-
- import com.isoft.screen.ScreenObserver.ScreenStateListener;
-
- public class ScreenObserverActivity extends Activity {
- private String TAG = "ScreenObserverActivity";
- private ScreenObserver mScreenObserver;
-
- @Override
- public void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- setContentView(R.layout.main);
-
- mScreenObserver = new ScreenObserver(this);
- mScreenObserver.requestScreenStateUpdate(new ScreenStateListener() {
- @Override
- public void onScreenOn() {
- doSomethingOnScreenOn();
- }
-
- @Override
- public void onScreenOff() {
- doSomethingOnScreenOff();
- }
- });
- }
-
- private void doSomethingOnScreenOn() {
- Log.i(TAG, "Screen is on");
- }
-
- private void doSomethingOnScreenOff() {
- Log.i(TAG, "Screen is off");
- }
-
- @Override
- protected void onDestroy() {
- super.onDestroy();
-
- mScreenObserver.stopScreenStateUpdate();
- }
- }
- http://blog.csdn.net/m_changgong/article/details/7608911
【Android代码片段之八】监听Android屏幕是否锁屏
原文:http://www.cnblogs.com/cmblogs/p/4813816.html