关于Android屏幕解锁与持续开亮

翻译 2012年03月21日 20:43:21

有一个关于UI的测试需要模拟一些按键事件,但是emulator刚启动总是处于lock状态,这样发出去的event总是报出异常:

 

java.lang.SecurityException: Injecting to another application requires INJECT_EVENT permission

 

因为当前处于锁屏界面而不是目标界面,当一个应用程序试图在其他应用程序上面发送模拟事件时,并且没有加入权限:

 

android.permission.INJECT_EVENTS

 

就会报错。当然我在这里不需要加这个权限,因为我的目的不是要在其他的应用程序上去发送模拟的事件,所以我必须想办法用程序把这个屏幕打开并解锁。这里有2个问题,第一是要打开并解锁屏幕,第二是要让屏幕保持开亮状态。

 

一,如何用代码打开并解锁屏幕?

  1. KeyguardManager km = (KeyguardManager)mContext.getSystemService(Context.KEYGUARD_SERVICE);    
  2. km.newKeyguardLock("Tag For Debug").disableKeyguard();    

 

 

使用这段代码,即使是出于黑屏状态,也可以自动将屏幕打开并解锁。

 

二,如何保持屏幕开亮?这里大概有2中常用的方法:

 

1. 使用FLAG_KEEP_SCREEN_ON:

  1. getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);  
 

 

2. 使用WakeLock:

  1. PowerManager pm = (PowerManager) getSystemService(Context.POWER_SERVICE);      
  2. PowerManager.WakeLock mWakeLock = pm.newWakeLock(PowerManager.PARTIAL_WAKE_LOCK, "Tag For Debug");      
  3. mWakeLock.acquire();     

使用这种方法还要注意调用释放代码:

  1. mWakeLock.release();  

最好就是在onResume() 和onPause()里面去做。


android 代码里解锁 点亮屏幕的方法

前一段有一个用PC控制android端平板上一个应用程序的需求,但是平板肯定会锁屏,于是就需要接收到PC端的消息后点亮屏幕以及解锁 下面是代码   package com.pccontrol.an...

Android屏幕解锁和点亮

有些场景需要程序自动点亮屏幕,解开屏幕锁,以方便用户即时操作,下面用代码来实现这一功能: //得到键盘锁管理器对象   KeyguardManager  km= (KeyguardManag...
  • chr8880
  • chr8880
  • 2012年09月11日 11:36
  • 609

Android点亮屏幕并解锁

Android点亮屏幕并解锁需求:现在在做一个app要求有唤醒屏幕并解锁的需求,参考了网上的许多的博客,感觉前篇一律,有的手机上好使,在有的手机上不好使,参考了微信的视频呼叫唤醒屏幕,可以点亮手机屏幕...

Android设备屏幕锁定/解锁/屏幕点亮监听

Android设备屏幕锁定/解锁/屏幕点亮监听Android屏幕锁定,解锁,开屏比较常用,故抽象成一个公共的DeviceScreenListener。在使用使用,首先new出一个DeviceScree...

Android 监听屏幕解锁事件

在做一个程序的时候,需要时刻保持某一服务是启动的,因此想到了通过监听屏幕SCREEN_ON和SCREEN_OFF这两个action。奇怪的是,这两个action只能通过代码的形式注册,才能被监听到,使...
  • gf771115
  • gf771115
  • 2012年09月18日 15:18
  • 21042

Android 锁定屏幕 不可解锁

Android锁定屏幕这个玩意只是在MDM上有所应用,通过后台发送指令到Android上,或者是Android程序本身检测满足某一条件的时候,对Android手机进行锁屏操作,当前这种方法,只能通过硬...

Android 锁屏显示和屏幕解锁

开发后台服务的时候经常需要对屏幕状态进行判断,屏幕的状态,比如是否是亮着的,可以使用PowerManager的isScreenOn方法进行判断,比如屏幕是否开启了自动旋转等。1:判断屏幕是否处于常亮的...

Android解锁屏幕失效问题

最近在做一个App时需要自动点亮并解锁系统屏幕,但是发现屏幕点亮后屏幕并没有解锁,还需要手动划一下。...

Android 监听屏幕解锁事件

在做一个程序的时候,需要时刻保持某一服务是启动的,因此想到了通过监听屏幕SCREEN_ON和SCREEN_OFF这两个action。奇怪的是,这两个action只能通过代码的形式注册,才能被监听到,使...

Android 监听屏幕锁屏,用户解锁

public class ScreenListener { private Context mContext; private ScreenBroadcastReceiver mScr...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:关于Android屏幕解锁与持续开亮
举报原因:
原因补充:

(最多只允许输入30个字)