Android监控屏幕解锁和点亮

本文介绍了如何在Android中通过创建一个BroadcastReceiver,监听屏幕解锁和点亮事件,并在相应事件触发时执行自定义操作。主要步骤包括创建ScreenOnReceiver,重写onReceive方法,判断ACTION_USER_PRESENT意图,以及使用PowerManager检查屏幕状态。在AndroidManifest.xml中注册广播接收器后,即可在屏幕解锁或点亮时执行特定功能。

   Android提供了广播,来监听屏幕解锁和屏幕点亮的事件,我们可以根据监听来进行我们自己想要的操作

步骤一:新建一个ScreenOnReceiver.java文件继承BroadcastReceiver

步骤二:重写public void onReceive(Context context, Intent intent)方法,在此方法里设置监听事件

@Override
    public void onReceive(Context context, Intent intent) {
        // 解锁
        if (intent != null && Intent.ACTION_USER_PRESENT.equals(intent.getAction())) {
            Toast.makeText(context, "屏幕已解锁", Toast.LENGTH_SHORT).show();   

         // 可以在此添加自己想要在屏幕解锁后进行的操作
        }
    }

步骤三:监听屏幕点亮

// 判断屏幕是否点亮
    public boolean isScreenOn(Context context) {
        PowerManager pm = (PowerManager) context.getSystemService(Context.POWER_SERVICE);
        if (pm.isScreenOn( )) {
            return true;
        }
        return false;
    }


步骤四:在androidManifest.xml文件中注册广播(  </application>标签路径下)

</application>

..........

     <receiver android:name="【包路径】.ScreenOnReceiver" >
                 <intent-filter>
                      <action android:name="android.intent.action.USER_PRESENT" />
                 </intent-filter>
     </receiver>

...........

</application>

总结:

public class ScreenOnReceiver extends BroadcastReceiver {

    public ScreenOnReceiver() {
        super();
    }

    @Override
    public void onReceive(Context context, Intent intent) {
        // 解锁
        if (intent != null
                && Intent.ACTION_USER_PRESENT.equals(intent.getAction())) {
            // Toast.makeText(context, "屏幕已解锁", Toast.LENGTH_SHORT).show();
            if (isScreenOn(context)) {
                // 当屏幕点亮,进行自己的操作        
            }
        }
    }

    // 判断屏幕是否点亮
    public boolean isScreenOn(Context context) {
        PowerManager pm = (PowerManager) context
                .getSystemService(Context.POWER_SERVICE);
        if (pm.isScreenOn()) {
            return true;
        }
        return false;
    }
}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值