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

2924

被折叠的 条评论
为什么被折叠?



