欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  移动技术

Android 监听锁屏、解锁、开屏 功能代码

程序员文章站 2024-03-04 18:20:30
1、首先定义 screenlistener package com.app.lib; import android.content.broadcastrece...

1、首先定义 screenlistener

package com.app.lib;
import android.content.broadcastreceiver;
import android.content.context;
import android.content.intent;
import android.content.intentfilter;
import android.os.powermanager;
/**
* 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状态广播接收者
*/
private class screenbroadcastreceiver extends broadcastreceiver {
private string action = null;
@override
public void onreceive(context context, intent intent) {
action = intent.getaction();
if (intent.action_screen_on.equals(action)) { // 开屏
mscreenstatelistener.onscreenon();
} else if (intent.action_screen_off.equals(action)) { // 锁屏
mscreenstatelistener.onscreenoff();
} else if (intent.action_user_present.equals(action)) { // 解锁
mscreenstatelistener.onuserpresent();
}
}
}
/**
* 开始监听screen状态
*
* @param listener
*/
public void begin(screenstatelistener listener) {
mscreenstatelistener = listener;
registerlistener();
getscreenstate();
}
/**
* 获取screen状态
*/
private void getscreenstate() {
powermanager manager = (powermanager) mcontext
.getsystemservice(context.power_service);
if (manager.isscreenon()) {
if (mscreenstatelistener != null) {
mscreenstatelistener.onscreenon();
}
} else {
if (mscreenstatelistener != null) {
mscreenstatelistener.onscreenoff();
}
}
}
/**
* 停止screen状态监听
*/
public void unregisterlistener() {
mcontext.unregisterreceiver(mscreenreceiver);
}
/**
* 启动screen状态广播接收器
*/
private void registerlistener() {
intentfilter filter = new intentfilter();
filter.addaction(intent.action_screen_on);
filter.addaction(intent.action_screen_off);
filter.addaction(intent.action_user_present);
mcontext.registerreceiver(mscreenreceiver, filter);
}
public interface screenstatelistener {// 返回给调用者屏幕状态信息
public void onscreenon();
public void onscreenoff();
public void onuserpresent();
}
}

 2、使用

package com.app.lib;
import android.support.v7.app.appcompatactivity;
import android.os.bundle;
import android.widget.toast;
public class mainactivity extends appcompatactivity {
private screenlistener screenlistener ;
@override
protected void oncreate(bundle savedinstancestate) {
super.oncreate(savedinstancestate);
setcontentview(r.layout.activity_main);
screenlistener = new screenlistener( mainactivity.this ) ;
screenlistener.begin(new screenlistener.screenstatelistener() {
@override
public void onscreenon() {
toast.maketext( mainactivity.this , "屏幕打开了" , toast.length_short ).show();
}
@override
public void onscreenoff() {
toast.maketext( mainactivity.this , "屏幕关闭了" , toast.length_short ).show();
}
@override
public void onuserpresent() {
toast.maketext( mainactivity.this , "解锁了" , toast.length_short ).show();
}
});
}
}

以上所述是小编给大家介绍的android 监听锁屏、解锁、开屏 功能代码的相关知识,希望对大家有所帮助!