手机长时间不使用后为了省电会自动锁屏,但有时候在玩游戏的时候,我们并不需要这样的“智能”。下面的代码演示了如何防止锁屏,大家可以试一下。
private PowerManager mPowerManager; //电源控制管理器,比如防锁屏
private WakeLock mWakeLock;//唤醒锁?
public void onCreate(Bundle savedInstanceState) {
mPowerManager = (PowerManager) getSystemService(POWER_SERVICE);
mWakeLock = mPowerManager.newWakeLock(PowerManager.SCREEN_BRIGHT_WAKE_LOCK, getClass().getName()); //处理屏幕防止锁屏
}
@Override
protected void onResume() {
super.onResume();
mWakeLock.acquire(); //恢复时解除锁屏
}
@Override
protected void onPause() {
super.onPause();
mWakeLock.release();
}
当然还需要添加权限:
<uses-permission android:name="android.permission.WAKE_LOCK" />
android的PowerManager和PowerManager.WakeLock
http://java-admin.iteye.com/blog/930100
WakeLock使用方法示例代码
http://www.android123.com.cn/androidkaifa/867.html
另一篇:
PowerManager和WakeLock的操作步骤
PowerManager pm = (PowerManager) getSystemService(Context.POWER_SERVICE);通过 Context.getSystemService().方法获取PowerManager实例。
然后通过PowerManager的newWakeLock((int flags, String tag)来生成WakeLock实例。int Flags指示要获取哪种WakeLock,不同的Lock对cpu 、屏幕、键盘灯有不同影响。
获取WakeLock实例后通过acquire()获取相应的锁,然后进行其他业务逻辑的操作,最后使用release()释放(释放是必须的)。
关于int flags
各种锁的类型对CPU 、屏幕、键盘的影响:
PARTIAL_WAKE_LOCK:保持CPU 运转,屏幕和键盘灯有可能是关闭的。
SCREEN_DIM_WAKE_LOCK:保持CPU 运转,允许保持屏幕显示但有可能是灰的,允许关闭键盘灯
SCREEN_BRIGHT_WAKE_LOCK:保持CPU 运转,允许保持屏幕高亮显示,允许关闭键盘灯
FULL_WAKE_LOCK:保持CPU 运转,保持屏幕高亮显示,键盘灯也保持亮度
ACQUIRE_CAUSES_WAKEUP:Normal wake locks don't actually turn on the illumination. Instead, they cause the illumination to remain on once it turns on (e.g. from user activity). This flag will force the screen and/or keyboard to turn on immediately, when the WakeLock is acquired. A typical use would be for notifications which are important for the user to see immediately.
ON_AFTER_RELEASE:f this flag is set, the user activity timer will be reset when the WakeLock is released, causing the illumination to remain on a bit longer. This can be used to reduce flicker if you are cycling between wake lock conditions.
权限获取
要进行电源的操作需要在AndroidManifest.xml中声明该应用有设置电源管理的权限。
<uses-permission android:name="android.permission.WAKE_LOCK" />
你可能还需要
<uses-permission android:name="android.permission.DEVICE_POWER" />
另外WakeLock的设置是 Activiy 级别的,不是针对整个Application应用的。
可以在activity的onResume方法里面操作WakeLock, 在onPause方法里面释放。
分享到:
相关推荐
在Windows系统中,阻止屏幕锁屏可以通过编程方式实现,例如使用C#或VB.NET编写小程序,调用Windows API函数`SetThreadExecutionState`来改变线程执行状态,从而防止屏幕进入休眠或锁定。这个API可以设置系统的执行...
我们可以使用 PowerManager.WakeLock 来禁止屏幕休眠和锁屏。使用这个方法需要在程序中添加以下代码: @Override protected void onResume() { super.onResume(); pManager = ((PowerManager) getSystemService...
然而,通过编程的方式实现“点击按钮自动锁屏”可以为用户带来更大的便利性,无需物理按键就能执行锁屏动作。以下将详细介绍实现这一功能的关键知识点。 1. **BroadcastReceiver**:在Android中,我们可以使用...
调试过程中需要确保锁屏操作的准确性和响应速度,同时也要防止因误操作导致的意外锁屏。 10. **安全考虑**: 实现一键锁屏功能时,需要注意安全性问题。例如,避免恶意应用利用该功能进行恶意操作,或者在锁屏状态...
另外,还需要`android.permission.WAKE_LOCK`权限,确保设备在锁屏时保持唤醒状态,防止屏幕自动关闭。 接着,我们需要引入电源管理的相关API。Android提供了PowerManager类,通过它可以控制设备的电源状态。创建一...
一键锁屏是一种便捷的操作方式,允许用户快速锁定设备屏幕,以防止误触或保护隐私。在Android系统中,实现一键锁屏通常涉及到以下几个关键知识点: 1. **BroadcastReceiver**:为了实现一键锁屏,我们需要创建一个...
例如,防止恶意应用滥用锁屏功能,或者在不恰当的时候锁屏导致用户失去对设备的控制。 总的来说,"一键锁屏Demo"是一个展示Android电源管理和窗口管理API如何协同工作的实例,同时涉及到权限控制、用户交互、服务...
例如,`<uses-permission android:name="android.permission.WAKE_LOCK" />`用于获取唤醒锁定权限,以防止设备在锁屏时自动休眠。 3. **获取锁屏权限**:由于涉及到系统的敏感操作,可能需要在Android 6.0及以上...
最后,为了使一键锁屏功能能够全局可用,可能还需要注册一个BroadcastReceiver,监听如`BOOT_COMPLETED`这样的广播事件,以便在设备启动后自动启动锁屏服务。 总结一下,这个"安卓Android源码——一键锁屏功能源码....
`DISABLE_KEYGUARD`权限允许应用禁用键盘锁,而`WAKE_LOCK`则确保设备在锁屏时保持唤醒状态,避免屏幕自动熄灭。 接下来,我们关注主要的Activity,这是用户与应用交互的入口。在这个一键锁屏应用中,Activity通常...
`WakeLock`允许应用程序请求保持CPU运行或屏幕亮起,防止设备进入休眠状态。获取`WakeLock`需要`WAKE_LOCK`权限。通常,我们会使用`PARTIAL_WAKE_LOCK`类型的`WakeLock`来保持CPU运行,而`SCREEN_BRIGHT_WAKE_LOCK`...
此外,还要考虑防止屏幕截图、防窥探等安全措施,确保用户隐私不被泄露。 四、电源管理和唤醒锁 锁屏应用需要处理设备的电源状态,例如在用户离开后自动锁定屏幕,节约电量。使用PowerManager可以控制设备的休眠和...
在Android系统开发中,有时为了确保应用程序的连续运行或提供特定功能,需要防止设备自动锁屏和休眠。这通常涉及到两个主要的实现方法:通过权限设置和通过代码控制。本文将详细探讨这两种方法,并提供具体的实践...
5. **系统级集成**:为了确保Kiosk模式的稳定性和安全性,可能需要进行一些系统级别的集成,比如防止系统更新覆盖你的设置,或者在重启后自动启动Kiosk模式。这通常需要通过广播接收器来监听设备启动事件。 6. **...
当Activity失去焦点或被暂停时,这个标志会自动失效,屏幕可能恢复正常熄灭逻辑。 2. **使用WakeLock**: Android的PowerManager服务提供了一种名为WakeLock的方法,它允许应用控制设备的电源状态。在onResume()...
这款名为"低头锁"的Android应用程序,正如标题所言,似乎具备了特定的定时锁屏和快速锁屏功能,旨在帮助用户控制自己使用手机的时间,防止过度沉迷。 Android系统允许开发者通过Java或Kotlin等编程语言来创建这样的...
此外,这种方法也可以在 Activity 退出时自动释放资源,不需要开发者手动释放。 方法三:在界面布局 xml 中设置 方法三是使用界面布局 xml 文件中的 keepScreenOn 属性来保持屏幕常亮。下面是一个示例代码: ```...
可以使用`AudioManager`来调节音量,而`PowerManager`可以控制屏幕亮度和自动锁屏。 8. **适应不同屏幕尺寸和方向**: 视频播放器应能适应各种设备屏幕尺寸,可以使用布局权重、百分比布局或约束布局来实现自适应...
2. **PowerManager**:Android的PowerManager服务提供了管理设备电源状态的功能,包括获取设备当前的唤醒锁状态和创建新的唤醒锁。在定时锁机功能中,可能需要使用WakeLock来确保定时器即使在屏幕关闭的情况下也能...
4. `FLAG_KEEP_SCREEN_ON`:这是一个更轻量级的选项,可以在指定视图上设置,避免屏幕自动关闭。 在使用 `WakeLock` 时,推荐使用 try-with-resources 结构,确保在发生异常时也能正确释放 `WakeLock`: ```java ...