【3D技术宅公社】XR数字艺术论坛  XR技术讨论 XR互动电影 定格动画

 找回密码
 立即注册

QQ登录

只需一步,快速开始

调查问卷
论坛即将给大家带来全新的技术服务,面向三围图形学、游戏、动画的全新服务论坛升级为UTF8版本后,中文用户名和用户密码中有中文的都无法登陆,请发邮件到324007255(at)QQ.com联系手动修改密码

3D技术论坛将以计算机图形学为核心,面向教育 推出国内的三维教育引擎该项目在持续研发当中,感谢大家的关注。

查看: 2911|回复: 2

android 唤醒 解锁屏幕使用示例

[复制链接]
发表于 2013-1-30 00:01:45 | 显示全部楼层 |阅读模式
解锁、唤醒屏幕用到KeyguardManagerKeyguardLockPowerManagerPowerManager.WakeLock

所需权限:
<uses-permission android:name="android.permission.WAKE_LOCK" />

<uses-permission android:name="android.permission.DISABLE_KEYGUARD" />
  1. //锁屏、唤醒相关
  2. private KeyguardManager  km;
  3. private KeyguardLock kl;
  4. private PowerManager pm;
  5. private PowerManager.WakeLock wl;

  6. private void wakeAndUnlock(boolean b)
  7. {
  8.        if(b)
  9.        {
  10.               //获取电源管理器对象
  11.               pm=(PowerManager) getSystemService(Context.POWER_SERVICE);
  12.               //获取PowerManager.WakeLock对象,后面的参数|表示同时传入两个值,最后的是调试用的Tag
  13.               wl = pm.newWakeLock(PowerManager.ACQUIRE_CAUSES_WAKEUP | PowerManager.SCREEN_BRIGHT_WAKE_LOCK, "bright");
  14.               //点亮屏幕
  15.               wl.acquire();      
  16.               //得到键盘锁管理器对象
  17.               km= (KeyguardManager)getSystemService(Context.KEYGUARD_SERVICE);
  18.               kl = km.newKeyguardLock("unLock");
  19.               //解锁
  20.               kl.disableKeyguard();
  21.        }
  22.        else
  23.        {
  24.               //锁屏
  25.               kl.reenableKeyguard();
  26.               //释放wakeLock,关灯
  27.               wl.release();
  28.        }
  29. }
复制代码
 楼主| 发表于 2013-1-30 00:05:27 | 显示全部楼层
另一段代码
要实现自动解锁和点亮屏幕的功能则需要在AndroidManifest.xml添加权限:
<uses-permission android:name="android.permission.WAKE_LOCK" />
<uses-permission android:name="android.permission.DISABLE_KEYGUARD" />
由于有些项目有解锁唤醒屏幕的需求。比如闹钟,打电话等。下面是使用键盘锁管理器和电源管理器实现解锁屏幕和点亮屏幕的功能。
  1. KeyguardLock kl = km.newKeyguardLock("unLock");
  2. //参数是LogCat里用的Tag
  3. kl.disableKeyguard(); //解锁
  4. PowerManager pm=(PowerManager) getSystemService(Context.POWER_SERVICE);//获取电源管理器对象
  5. PowerManager.WakeLock wl = pm.newWakeLock(PowerManager.ACQUIRE_CAUSES_WAKEUP | PowerManager.SCREEN_DIM_WAKE_LOCK, "bright");
  6. //获取PowerManager.WakeLock对象,后面的参数|表示同时传入两个值,最后的是LogCat里用的Tag
  7. wl.acquire();//点亮屏幕
  8. wl.release();//释放
复制代码
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|3D数字艺术论坛 ( 沪ICP备14023054号 )

GMT+8, 2025-5-6 21:07

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表