1,实现效果 :

2,实现代码

【1】创建接收者

package com.xiaoshuai.www.screendemo;import android.app.admin.DeviceAdminReceiver;import android.content.Context;import android.content.Intent;import android.widget.Toast;/*** Created by Lenovo on 2019/7/21.*/public class ScreenOffAdminReceiver extends DeviceAdminReceiver {private void showToast(Context context, String msg) {Toast.makeText(context, msg, Toast.LENGTH_SHORT).show();}@Overridepublic void onEnabled(Context context, Intent intent) {showToast(context,"设备管理器使能");}@Overridepublic void onDisabled(Context context, Intent intent) {showToast(context,"设备管理器没有使能");}}

【2】添加权限 ,清单文件注册接收者

<?xml version="1.0" encoding="utf-8"?><manifest xmlns:android="http://schemas.android.com/apk/res/android"package="com.xiaoshuai.www.screendemo"><!-- 清除屏保需要的权限 --><uses-permission android:name="android.permission.DISABLE_KEYGUARD" /><!-- 唤醒屏幕需要的权限 --><uses-permission android:name="android.permission.WAKE_LOCK" /><application android:allowBackup="true" android:icon="@mipmap/ic_launcher"android:label="@string/app_name" android:roundIcon="@mipmap/ic_launcher_round"android:supportsRtl="true" android:theme="@style/AppTheme"><activity android:name=".MainActivity"><intent-filter><action android:name="android.intent.action.MAIN" /><category android:name="android.intent.category.LAUNCHER" /></intent-filter></activity><receiverandroid:name="ScreenOffAdminReceiver"android:label="@string/app_name"android:permission="android.permission.BIND_DEVICE_ADMIN" ><meta-dataandroid:name="android.app.device_admin"android:resource="@xml/device_admin" /><intent-filter><action android:name="android.app.action.DEVICE_ADMIN_ENABLED" /></intent-filter></receiver></application></manifest>

【3】MainActivity代码

package com.xiaoshuai.www.screendemo;import android.app.KeyguardManager;import android.app.admin.DevicePolicyManager;import android.content.ComponentName;import android.content.Context;import android.content.Intent;import android.os.Bundle;import android.os.Handler;import android.os.Message;import android.os.PowerManager;import android.support.v7.app.AppCompatActivity;import android.view.View;import android.widget.Toast;public class MainActivity extends AppCompatActivity {private String tag = "MainActivity";private Handler handler = new Handler() {@Overridepublic void handleMessage(Message msg) {super.handleMessage(msg);switch (msg.what) {case 1:checkScreenOn(null);break;case 2:break;}}};private DevicePolicyManager policyManager;private ComponentName adminReceiver;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);KeyguardManager km = (KeyguardManager) getSystemService(KEYGUARD_SERVICE);KeyguardManager.KeyguardLock kl = km.newKeyguardLock("name");kl.disableKeyguard();adminReceiver = new ComponentName(MainActivity.this, ScreenOffAdminReceiver.class);mPowerManager = (PowerManager) getSystemService(POWER_SERVICE);policyManager = (DevicePolicyManager) MainActivity.this.getSystemService(Context.DEVICE_POLICY_SERVICE);checkAndTurnOnDeviceManager(null);}@Overrideprotected void onActivityResult(int requestCode, int resultCode, Intent data) {super.onActivityResult(requestCode, resultCode, data);isOpen();}private void isOpen() {if (policyManager.isAdminActive(adminReceiver)) {//判断超级管理员是否激活showToast("设备已被激活");} else {showToast("设备没有被激活");}}private PowerManager mPowerManager;private PowerManager.WakeLock mWakeLock;/*** @param view 检测屏幕状态*/public void checkScreen(View view) {PowerManager pm = (PowerManager) getSystemService(Context.POWER_SERVICE);boolean screenOn = pm.isScreenOn();if (!screenOn) {//如果灭屏//相关操作showToast("屏幕是息屏");} else {showToast("屏幕是亮屏");}}/*** @param view 亮屏*/public void checkScreenOn(View view) {mWakeLock = mPowerManager.newWakeLock(PowerManager.SCREEN_BRIGHT_WAKE_LOCK | PowerManager.ACQUIRE_CAUSES_WAKEUP, "tag");mWakeLock.acquire();mWakeLock.release();}/*** @param view 熄屏*/public void checkScreenOff(View view) {boolean admin = policyManager.isAdminActive(adminReceiver);if (admin) {policyManager.lockNow();} else {showToast("没有设备管理权限");}}/*** @param view 熄屏并延时亮屏*/public void checkScreenOffAndDelayOn(View view) {boolean admin = policyManager.isAdminActive(adminReceiver);if (admin) {policyManager.lockNow();handler.sendEmptyMessageDelayed(1, 3000);} else {showToast("没有设备管理权限");}}/*** @param view 检测并去激活设备管理器权限*/public void checkAndTurnOnDeviceManager(View view) {Intent intent = new Intent(DevicePolicyManager.ACTION_ADD_DEVICE_ADMIN);intent.putExtra(DevicePolicyManager.EXTRA_DEVICE_ADMIN, adminReceiver);intent.putExtra(DevicePolicyManager.EXTRA_ADD_EXPLANATION, "开启后就可以使用锁屏功能了...");//显示位置见图二startActivityForResult(intent, 0);}private void showToast(String Str) {Toast.makeText(this, Str, Toast.LENGTH_SHORT).show();}}

Android 息屏亮屏代码实现相关推荐

  1. 【我的OpenGL学习进阶之旅】解决关于在OpenGL ES开发中GLSurfaceView调用了onPause和onResume方法,然后息屏亮屏之后GLSurfaceView黑屏的问题

    目录 一.问题描述 二.分析问题 2.1 排查onPause和onResume方法 2.2 注释掉onPause和onResume方法 2.3 GLSurfaceView 关于Activity生命周期 ...

  2. Android 屏幕灭屏亮屏广播,屏幕灭屏亮屏监听,广播实现按键监听

    service 类注册广播进行监听 /*** 作者:created by meixi* 邮箱:13164716840@163.com* 日期:2018/9/27 09*/ public class S ...

  3. Android P Keyguard Scrim快速灭屏亮屏闪亮

    MTK在android P上会出现在设置锁屏滑动时候,会出现快速灭屏亮屏闪亮现象. 在开发者模式关掉动画时不会出现此问题(Keyguard Scrim动画问题) 解决办法:setDuration(0) ...

  4. Android 以双击亮屏为例,上层控制驱动节点的流程

    1.双击屏幕时,tp报上来的事件设定为KeyEvent.KEYCODE_U,则在PhoneWindowManager中可以增加监听,只要正常上报该事件,按以下的执行则能实现双击亮屏的功能. ALPS_ ...

  5. android人脸解锁亮屏,EMUI 8.0升级加入全新人脸解锁 抬腕亮屏功能:快来看看如何开启...

    作为华为高端机型,华为mate10以及mate10 pro终于在近日收到了基于安卓8.0 的EMUI 8.0升级,升级之后EMUI的系统版本号为8.0.0.128SP2. 华为mate10系统更新 除 ...

  6. Android 监听屏幕熄屏亮屏和主动唤醒屏幕

    // 监听熄屏和亮屏需要添加权限 <uses-permission android:name="android.permission.DEVICE_POWER"/> & ...

  7. Android抬手亮屏

    抬手亮屏主要是用到了手机的加速度传感器,但不同厂商的加速度传感器不是一直开着的,有些为了节省电量,会 在手机熄屏后强制关闭加速度传感器 想要实现抬手亮屏,务必在androidmanifest.xml中 ...

  8. Android来电屏幕亮屏解锁

    做即时通讯软件,当有语音或视频来电时,需要默认亮屏解锁就需要下面的操作了 getWindow().addFlags(WindowManager.LayoutParams.FLAG_SHOW_WHEN_ ...

  9. Android 设置屏幕亮屏

    /*** 亮屏*/private void lightScreen() {PowerManager pm = (PowerManager) context.getSystemService(Conte ...

最新文章

  1. Eclipse快捷键归纳及整理
  2. Ceph:RBD在线扩容容量
  3. Linux操作系统安装---centos6.7安装图文实例详解(完整版)
  4. mysql与hive2.1.1安装和配置
  5. WPF学习笔记(二):初学者避坑实录
  6. pdh光端机的优点介绍
  7. 锐捷校园网环境下使用虚拟机上网
  8. HeadFirstJava——4_对象的行为
  9. open source Lrc歌词解析器发布
  10. mac os 录屏快捷键_免费的录屏软件有哪些?不限制时长的录制软件
  11. 10个全网最具创意的聊天机器人:漫威和联合国儿童基金会都在尝试使用聊天机器人
  12. 嵌入式系统概论-考试总结
  13. 张家港python培训_张的解释|张的意思|汉典“张”字的基本解释
  14. 鸡兔同笼python
  15. ubuntu平台下编译vlc-android视频播放器实践
  16. 计算机连接打印机用户数量修改,win7系统下局域网如何限制每台打印机的使用成员数量...
  17. edg击败we视频_2019德杯淘汰赛:EDG让二追三击败WE
  18. ANSYS渡槽槽身动水压力的施加(1)——矩形渡槽
  19. C语言实现五子棋游戏(具体说明+具体步骤)
  20. 逻辑回归阈值_机器学习入门(2)-逻辑回归

热门文章

  1. c语言 指针不能赋值吗,程序员编程C语言指针答疑:指针赋值没那么简单
  2. android 15K+面试题
  3. unity3d 飞碟游戏
  4. 一张纸一直对折,按顺序打印
  5. 基于Qualcomm骁龙处理器的脸部识别开发
  6. 企业网盘的映射盘、同步盘、虚拟盘 都是些什么?
  7. 自制ST-Link V2.1教程(SWD调试+虚拟串口+虚拟U盘)
  8. 在线网站客服系统源码
  9. html中怎么写排行榜,div css列表布局排行榜代码
  10. 2023美赛ABCDEF题思路获取/2023美赛思路ABCDEF题/美赛数学建模思路