注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

民主与科学

独立之人格,自由之思想

 
 
 

日志

 
 

KeyguardManager简介  

2011-10-16 09:13:06|  分类: Android基础 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |
android.app.KeyguardManager类用于对Keyguard进行管理,即对锁屏进行管理
Class Overview

Class that can be used to lock and unlock the keyboard. Get an instance of this class by calling getSystemService(java.lang.String) with argumentKEYGUARD_SERVICE. The Actual class to control the keyboard locking is KeyguardManager.KeyguardLock.

dandroid.app.KeyguardManager有两个内部类
Nested Classes
classKeyguardManager.KeyguardLockThis class is deprecated. Use FLAG_DISMISS_KEYGUARD and/or FLAG_SHOW_WHEN_LOCKED instead; this allows you to seamlessly hide the keyguard as your application moves in and out of the foreground and does not require that any special permissions be requested. Handle returned bynewKeyguardLock(String) that allows you to disable / reenable the keyguard.  
其实该类所提供了解除锁屏和反解锁屏这两个功能并不能使用FLAG_DISMISS_KEYGUARDFLAG_SHOW_WHEN_LOCKED来代替。不知gooolge为什么把它标为deprecated
interfaceKeyguardManager.OnKeyguardExitResultCallback passed to exitKeyguardSecurely(KeyguardManager.OnKeyguardExitResult) to notify caller of result. 
这个是为得到执行exitKeyguardSecurely的结果设计的一个回调接口,以表示调用是否成功。
主要函数
voidexitKeyguardSecurely(KeyguardManager.OnKeyguardExitResult callback)
This method is deprecated. Use FLAG_DISMISS_KEYGUARD and/or FLAG_SHOW_WHEN_LOCKED instead; this allows you to seamlessly hide the keyguard as your application moves in and out of the foreground and does not require that any special permissions be requested. Exit the keyguard securely. The use case for this api is that, after disabling the keyguard, your app, which was granted permission to disable the keyguard and show a limited amount of information deemed safe without the user getting past the keyguard, needs to navigate to something that is not safe to view without getting past the keyguard. This will, if the keyguard is secure, bring up the unlock screen of the keyguard.
booleaninKeyguardRestrictedInputMode()
If keyguard screen is showing or in restricted key input mode (i.e.
这是函数用于判断当前是否处于锁屏状态。
KeyguardManager.KeyguardLocknewKeyguardLock(String tag)
This method is deprecated. Use FLAG_DISMISS_KEYGUARD and/or FLAG_SHOW_WHEN_LOCKED instead; this allows you to seamlessly hide the keyguard as your application moves in and out of the foreground and does not require that any special permissions be requested. Enables you to lock or unlock the keyboard. Get an instance of this class by callingContext.getSystemService(). This class is wrapped by KeyguardManager.
android.app.KeyguardManager.KeyguardLockandroid.app.KeyguardManager的内部类,我们真正的是通过它来解除锁屏和反解除锁屏
通过disableKeyguard()函数来解除锁屏,通过来reenableKeyguard()反解除锁屏.reenableKeyguard()反解除锁屏的意思是:如果在调用disableKeyguard()函数之前是锁屏的,那么就进行锁屏,否则不进行任何操作。当然如果之前没调用disableKeyguard()函数,也不进行任何操作。
主要函数
voiddisableKeyguard()
Disable the keyguard from showing.
需要权限android.permission.DISABLE_KEYGUARD
voidreenableKeyguard()
Reenable the keyguard.
如果在此之前调用了disableKeyguard()函数,且在调用disableKeyguard()函数之前是锁屏的话,那么就进行锁屏,否则不进行任何操作。
android.app.KeyguardManager.OnKeyguardExitResult只定义了个函数接口onKeyguardExitResult(boolean success)
Public Methods
abstract voidonKeyguardExitResult(boolean success)
返回true表示exitKeyguardSecurely()函数执行成功,否则表示失败
实例1:
void test()
{
KeyguardManager keyguardManager=(KeyguardManager )getSystemService(Context.KEYGUARD_SERVICE);
String lockTag=this.getLocalClassName();
KeyguardManager.OnKeyguardExitResult keyguardExitResultListener =new KeyguardManager.OnKeyguardExitResult()
{
@Override
public void onKeyguardExitResult(boolean success) {
// TODO Auto-generated method stub
if(success)
Log.i(tag,"successfull to do Keyguard exit");
else
Log.i(tag,"fail to do Keyguard exit");
}
};
keyguardManager.exitKeyguardSecurely(keyguardExitResultListener);
KeyguardManager.KeyguardLock keyguardLock=keyguardManager.newKeyguardLock(lockTag);
for(int i=10;i>0;i--)
{
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
Log.i(tag,"We will unlock the screen in "+i+" seconds");
}
keyguardLock.disableKeyguard();
for(int i=20;i>0;i--)
{
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
Log.i(tag,"We will roll back the state of Keyguard in "+i+" seconds");
}
long t=System.currentTimeMillis();
keyguardLock.reenableKeyguard();
Log.i(tag,"time:"+(System.currentTimeMillis()-t));
}
注意:需要权限android.permission.DISABLE_KEYGUARD
  评论这张
 
阅读(8692)| 评论(0)
推荐 转载

历史上的今天

在LOFTER的更多文章

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017