公司之前有个项目需要将待机的移动设备先进行亮屏和解锁再进行其他功能的操作,如是写了一个测试demo,将亮屏和解锁的代码部分写在service中,测试代码通过点击按钮,锁屏后10s发送消息启动服务,亮屏并解锁,实际项目中是通过广播的方式启动服务的.

代码展示如下:

1、布局文件wake_main.xml

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"xmlns:tools="http://schemas.android.com/tools"android:layout_width="match_parent"android:layout_height="match_parent"android:gravity="center_horizontal"android:paddingBottom="@dimen/activity_vertical_margin"android:paddingLeft="@dimen/activity_horizontal_margin"android:paddingRight="@dimen/activity_horizontal_margin"android:paddingTop="@dimen/activity_vertical_margin"tools:context=".MainActivity" ><Buttonandroid:id="@+id/wake_start"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_centerHorizontal="true"android:layout_centerVertical="true"android:gravity="center"android:text="@string/start" /></RelativeLayout>

2、服务WakLockService.java

package cn.wakelock.demo;import android.app.KeyguardManager;
import android.app.KeyguardManager.KeyguardLock;
import android.app.Service;
import android.content.Context;
import android.content.Intent;
import android.os.IBinder;
import android.os.PowerManager;
import android.util.Log;public class WakLockService extends Service {private static final String TAG="WakLockService";// 键盘管理器  KeyguardManager keyguardManager;// 键盘锁  private KeyguardLock keyguardLock;// 电源管理器  private PowerManager powerManager;// 唤醒锁  private PowerManager.WakeLock wakeLock;@Overridepublic IBinder onBind(Intent intent) {// TODO Auto-generated method stubreturn null;}@Overridepublic void onCreate() {// TODO Auto-generated method stubsuper.onCreate();powerManager=(PowerManager) getSystemService(Context.POWER_SERVICE);keyguardManager=(KeyguardManager) getSystemService(Context.KEYGUARD_SERVICE);}@Override@Deprecatedpublic void onStart(Intent intent, int startId) {Log.e(TAG, "Service start--------------");// 点亮亮屏  wakeLock = powerManager.newWakeLock  (PowerManager.ACQUIRE_CAUSES_WAKEUP | PowerManager.SCREEN_DIM_WAKE_LOCK, "Tag");  wakeLock.acquire();  keyguardLock = keyguardManager.newKeyguardLock("");  // 键盘解锁  keyguardLock.disableKeyguard();  }@Overridepublic void onDestroy() {super.onDestroy();Log.e(TAG, "Service onDestroy--------------");if (wakeLock != null) {  wakeLock.release();  wakeLock = null;  }  if (keyguardLock!=null) {  keyguardLock.reenableKeyguard();  }  }}

注意服务需要添加权限且在布局文件中进行注册

   <uses-permission android:name="android.permission.WAKE_LOCK"/><uses-permission android:name="android.permission.DISABLE_KEYGUARD"/><permission android:name="android.permission.DEVICE_POWER"/>......<service android:name="cn.wakelock.demo.WakLockService"></service>

3、WakeActivity.java

package cn.wakelock.demo;import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
import android.util.Log;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import cn.jon.demo.R;public class WakeActivity extends Activity implements OnClickListener{public static final int WAKE_UNLOCK=0x1123;private Handler mHandler=new Handler(){public void handleMessage(android.os.Message msg) {switch (msg.what) {case WAKE_UNLOCK:Log.e("WakeActivity", "handleMessage begin----------");Intent mIntent=new Intent();mIntent.setClass(WakeActivity.this, WakLockService.class);startService(mIntent);break;default:break;}};};private Button mButton;@Overrideprotected void onCreate(Bundle savedInstanceState) {// TODO Auto-generated method stubsuper.onCreate(savedInstanceState);setContentView(R.layout.wake_main);initViews();}private void initViews() {mButton=(Button) findViewById(R.id.wake_start);mButton.setOnClickListener(this);}@Overridepublic void onClick(View v) {switch (v.getId()) {case R.id.wake_start:Message msg=new Message();msg.what=WAKE_UNLOCK;mHandler.sendMessageDelayed(msg, 10000);break;default:break;}}@Overrideprotected void onDestroy() {super.onDestroy();Log.e("WakeActivity", "stop service----------");Intent mIntent=new Intent();mIntent.setClass(WakeActivity.this, WakLockService.class);stopService(mIntent);}}

测试时,点击按钮,锁屏,10s后屏幕会通过服务亮屏并解锁,项目中需要用到上述功能的可以嵌入上面代码部分.

android亮屏解锁demo相关推荐

  1. Android来电屏幕亮屏解锁

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

  2. android 录屏 github,GitHub - mabeijianxi/ScreenRecordPushStream: Android 录屏推流demo

    ScreenRecordPushStream 这是一个基于 rtmp 协议的 Android 录屏推流demo (Demo APK 下载) 使用方法 一. 服务器搭建 mkdir nms cd nms ...

  3. android 自动亮屏解锁,android锁屏唤醒并解锁屏幕

    1.这个方法是实现锁屏状态下唤醒手机,亮屏并解锁屏幕:public static void wakeUpAndUnlock(Context context){ //屏锁管理器 KeyguardMana ...

  4. android亮屏、暗屏、解锁、关闭系统对话的监听事件

    protected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentVie ...

  5. Android 亮屏速度分析

    前面聊的 最近在调试项目的亮屏速度,我们希望在按下power键后到亮屏这个时间能达到500MS以内,在Rockchip 3399和3288上面的时间都不能达到要求,因此引发了一系列的调试之路. 计算按 ...

  6. Android 亮屏流程分析

    https://blog.csdn.net/FightFightFight/article/details/79808100 相关文章: [Android Framework] 8.1 PowerMa ...

  7. android 亮屏分析,Android亮屏速度分析总结

    前面聊的 最近在调试项目的亮屏速度,我们希望在按下power键后到亮屏这个时间能达到500MS以内,在Rockchip 3399和3288上面的时间都不能达到要求,因此引发了一系列的调试之路. 计算按 ...

  8. Android亮屏、熄屏控制

    在Android应用开发中,不少的应用需要和屏幕打交道,例如闹钟响铃的时候要保持屏幕处于亮屏状态,而在提醒过后又需要将屏幕熄灭.那么,在Android中是怎样来控制亮屏和熄屏的呢?下面就揭开神秘的面纱 ...

  9. Android 亮屏速度分析总结

    前面聊的 最近在调试项目的亮屏速度,我们希望在按下power键后到亮屏这个时间能达到500MS以内,在Rockchip 3399和3288上面的时间都不能达到要求,因此引发了一系列的调试之路. 计算按 ...

最新文章

  1. ai取代程序员_你现在从事的程序员还有多久会消失?牛津大学研究员帮你算了算...
  2. 力压清华北大!深圳大学,世界第三!国际专利申请最新榜单出炉
  3. SQL Server 2008 阻止保存要求重新创建表的更改问题的设置方法
  4. java对象的生命周期及回收
  5. DevOps通用及版本控制面试题
  6. 细腻剖析2010年3月四级网络工程师试卷解题思路
  7. java lambda表达式_「JAVA8」- Lambda 表达式
  8. SQL Server - SqlLocalDB安装
  9. java环境变量的配置_一文带你学会Java环境变量配置(小白向)
  10. 每天Leetcode 刷题 初级算法篇-数学问题-3的幂
  11. 计算机网络分层协议及各层功能
  12. PandoraBox 路由器 IPv6穿透
  13. ESXi6.0.0 新建win7虚拟机打开电源后鼠标失灵
  14. SpringCloudAlibaba之Nacos
  15. 待支付模板html,待支付.html
  16. 【Flink】Watermark
  17. 脚本化HTTP——AJax
  18. iOS闪退的原因和方案总结
  19. OUC课程评价小程序(测试报告)
  20. 求生之路寻找延迟服务器,求生之路2服务器tickrate的作用与网络参数的优化_3DM单机...

热门文章

  1. 转载 为什么我们应该学好英语
  2. 清翔电子51单片机PWM理解
  3. 【无标题】lead与lag函数
  4. ciclop读音_Ciclop:完全开源的3D扫描仪
  5. 强大的数字DJ混音器:Native Instruments Traktor pro for mac
  6. android虚拟机找不到应用程序,Android Studio中的Android模拟器不显示我的应用程序...
  7. mysql数据库服务器优化_MySQL数据库优化经验详谈(服务器普通配置)
  8. 合理利用计算机虚拟内存,电脑内存多大才够用?教你合理使用虚拟内存
  9. 【LLVM】内存计算引擎之Llvm
  10. 美容院做异业联盟有哪些合作方式呢?