有一个关于UI的测试需要模拟一些按键事件,但是emulator刚启动总是处于lock状态,这样发出去的event总是报出异常:
java.lang.SecurityException: Injecting to another application requires INJECT_EVENT permission
因为当前处于锁屏界面而不是目标界面,当一个应用程序试图在其他应用程序上面发送模拟事件时,并且没有加入权限:
android.permission.INJECT_EVENTS
就会报错。当然我在这里不需要加这个权限,因为我的目的不是要在其他的应用程序上去发送模拟的事件,所以我必须想办法用程序把这个屏幕打开并解锁。这里有2个问题,第一是要打开并解锁屏幕,第二是要让屏幕保持开亮状态。
一,如何用代码打开并解锁屏幕?
KeyguardManager km = (KeyguardManager)mContext.getSystemService(Context.KEYGUARD_SERVICE);
km.newKeyguardLock("Tag For Debug").disableKeyguard();
使用这段代码,即使是出于黑屏状态,也可以自动将屏幕打开并解锁。
二,如何保持屏幕开亮?这里大概有2中常用的方法:
1. 使用FLAG_KEEP_SCREEN_ON:
getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);
2. 使用WakeLock:
PowerManager pm = (PowerManager) getSystemService(Context.POWER_SERVICE);
PowerManager.WakeLock mWakeLock = pm.newWakeLock(PowerManager.PARTIAL_WAKE_LOCK, "Tag For Debug");
mWakeLock.acquire();
使用这种方法还要注意调用释放代码:
mWakeLock.release();
最好就是在onResume() 和onPause()里面去做。
分享到:
相关推荐
为了实现自动解锁,首先需要在AndroidManifest.xml文件中声明相应的权限,例如`android.permission.WAKE_LOCK`用于保持CPU运行不休眠,以及可能的`android.permission.DISABLE_KEYGUARD`来禁用屏幕锁。 2. **唤醒锁...
在安卓(Android)系统中,滑动解锁是用户与设备交互的基本功能之一,它为用户提供了一种简单且直观的方式来解锁屏幕。本资源“安卓Android源码——android 滑动解锁实现源代码.rar”包含了一个名为“LockScreen1.2...
滑动解锁是Android平台上一种常见的安全验证方式,它模仿了支付宝等知名应用的九宫格滑动解锁设计,为用户提供了一种便捷且直观的解锁体验...同时,不断优化和改进,使其更加符合用户需求,是滑动解锁持续发展的关键。
【Android图案解锁之九宫解锁源码】 在Android操作系统中,图案解锁是一种常见的用户认证方式,它通过用户在9个点构成的九宫格中绘制特定的连线图案来解锁设备。这种方式不仅简单直观,还提供了良好的用户体验。本...
"Android自定义锁屏实现----仿正点闹钟滑屏解锁"这一主题,旨在教你如何创建一个类似“正点闹钟”应用中的滑动解锁功能。下面将详细解释实现这个功能所需的知识点: 1. **Android权限**:首先,你需要在...
【Android滑动解锁机制】 在Android系统中,滑动解锁是一种常见的用户界面元素,用于保护设备的安全性。这种解锁方式允许用户通过在屏幕上滑动手指来解锁设备,通常结合PIN码、图案或密码提供额外的安全层。在...
1. `View`与`MotionEvent`: 在Android中,滑动解锁主要是通过监听用户的触摸事件来实现的。`View`是Android图形用户界面的基本构建块,而`MotionEvent`则表示用户对屏幕的触摸动作,如按下、移动和释放等。 2. `...
本文将深入探讨Android屏幕保护源码的相关知识,包括锁屏功能的实现、屏蔽Home键、返回键以及挂机键的技术细节。 1. **锁屏界面设计** - Android中的锁屏界面主要由`Activity`或者`Service`实现,通常是一个全屏...
在Android系统中,滑动解锁是一种常见的用户界面(UI)元素,它允许用户通过在屏幕上滑动手指来解锁设备。这种交互方式增强了用户体验,因为它的直观性和流畅性。本篇文章将深入探讨Android滑动解锁机制及其相关知识...
【Android屏幕锁源码解析】 Android屏幕锁是保护设备安全的重要功能,它防止未经授权的用户访问设备中的数据。本源码提供了一个实用的Android屏幕锁实现,有助于开发者深入理解屏幕锁定机制并进行自定义开发。这里...
本文将深入探讨Android屏幕密码锁的实现原理,并以"NumberLock"为例,解析其源码,帮助开发者理解如何创建自定义的数字密码锁。 首先,屏幕密码锁的基本组件包括锁屏界面、密码验证逻辑以及与系统服务的交互。锁屏...
在深入探讨Android系统中锁屏与解锁模块的工作原理之前,我们先来了解一下这些概念的基本背景。Android操作系统作为全球最广泛使用的移动设备操作系统之一,其用户界面(UI)设计和用户体验(UX)优化一直是开发者...
这个压缩包"实用源码——Android屏幕锁源码.rar"提供了一套完整的Android屏幕锁定应用的源代码,可以帮助开发者深入理解屏幕锁的实现机制,并可以作为自定义锁屏应用的起点。以下是基于这个源码包的一些关键知识点:...
在Android开发中,保持应用程序在锁屏状态下不被系统优化机制清理,并且在用户解锁后能够自动关闭特定页面,是一项常见的需求。这涉及到Android系统的进程管理、权限控制以及活动生命周期管理等多个方面。以下是对这...
【标题】"安卓锁屏九宫格锁屏解锁壁纸相关-android一键锁屏源代码android4.2工作正常.zip" 涉及的核心知识点是Android系统的锁屏机制,特别是九宫格锁屏和壁纸的实现。九宫格锁屏是Android系统中一种常见的用户安全...