`

KeyguardManager简介

 
阅读更多

KeyguardManager简介  

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

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
class KeyguardManager.KeyguardLock This 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
interface KeyguardManager.OnKeyguardExitResult Callback passed to exitKeyguardSecurely(KeyguardManager.OnKeyguardExitResult) to notify caller of result. 
这个是为得到执行exitKeyguardSecurely的结果设计的一个回调接口,以表示调用是否成功。
主要函数
void exitKeyguardSecurely(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.
boolean inKeyguardRestrictedInputMode()
If keyguard screen is showing or in restricted key input mode (i.e.
这是函数用于判断当前是否处于锁屏状态。
KeyguardManager.KeyguardLock newKeyguardLock(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()函数,也不进行任何操作。
主要函数
void disableKeyguard()
Disable the keyguard from showing.
需要权限android.permission.DISABLE_KEYGUARD
void reenableKeyguard()
Reenable the keyguard.
如果在此之前调用了disableKeyguard()函数,且在调用disableKeyguard()函数之前是锁屏的话,那么就进行锁屏,否则不进行任何操作。
android.app.KeyguardManager.OnKeyguardExitResult只定义了个函数接口onKeyguardExitResult(boolean success)
Public Methods
abstract void onKeyguardExitResult(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
分享到:
评论

相关推荐

    Android编程实现禁止系统锁屏与解锁亮屏的方法

    本文实例讲述了Android编程实现禁止系统锁屏与解锁亮屏的方法。...KeyguardManager km; KeyguardLock kl; unLock = pm.newWakeLock(PowerManager.ACQUIRE_CAUSES_WAKEUP | PowerManager.SCREEN_BRIGHT_WAKE_

    Android唤醒、解锁屏幕代码实例

    这里我们将详细探讨如何使用`KeyguardManager`、`KeyguardLock`、`PowerManager`以及`PowerManager.WakeLock`来实现这个功能。 首先,我们需要在AndroidManifest.xml文件中添加必要的权限,以便应用程序能够唤醒...

    判断锁屏状态

    1. **获取KeyguardManager实例**:通过调用`getSystemService`方法,并传入`Context.KEYGUARD_SERVICE`参数来获取`KeyguardManager`实例。 2. **检查屏幕状态**:调用`isKeyguardLocked`方法判断屏幕是否被锁定;...

    Android程序锁

    1. 获取KeyguardManager实例:`KeyguardManager keyguardManager = (KeyguardManager) getSystemService(KEYGUARD_SERVICE);` 2. 检查设备是否支持锁屏安全:`keyguardManager.isKeyguardSecure();` 3. 创建...

    android一键锁屏源代码,android4.2工作正常

    KeyguardManager keyguardManager = (KeyguardManager) getSystemService(KEYGUARD_SERVICE); ``` 然后,创建一个`KeyguardLock`对象,用于锁定屏幕: ```java KeyguardLock lock = keyguardManager.newKeyguardLock...

    Android锁屏

    KeyguardManager keyguardManager = (KeyguardManager) getSystemService(KEYGUARD_SERVICE); KeyguardLock keyguardLock = keyguardManager.newKeyguardLock("MyKeyguardLock"); keyguardLock.disableKeyguard(); ...

    android一键锁屏

    KeyguardManager keyguardManager = (KeyguardManager) getSystemService(KEYGUARD_SERVICE); if (keyguardManager != null) { keyguardManager.requestLockNow(); } } } ``` 在上面的代码中,我们首先通过`...

    android中的屏幕唤醒

    屏幕唤醒主要涉及两个关键组件:`KeyguardManager`和`PowerManager`。`PowerManager`用于管理设备的电源状态,包括屏幕亮度和CPU睡眠模式。而`KeyguardManager`则用于解锁设备的锁屏界面。 ### 二、权限配置 在...

    一键锁屏,android注销

    KeyguardManager keyguardManager = (KeyguardManager) getSystemService(KEYGUARD_SERVICE); if (keyguardManager != null) { keyguardManager.requestLockNow(); } } ``` 这段代码首先获取了`KeyguardManager`...

    LockDemo锁屏

    KeyguardManager keyguardManager = (KeyguardManager) getSystemService(KEYGUARD_SERVICE); KeyguardLock keyguardLock = keyguardManager.newKeyguardLock("MyApp"); keyguardLock.disableKeyguard(); ``` ...

    获得屏幕锁的android应用程序小例子

    KeyguardManager keyguardManager = (KeyguardManager) getSystemService(KEYGUARD_SERVICE); boolean isScreenLocked = keyguardManager.isKeyguardLocked(); ``` 3. **监听屏幕状态变化**: 若要实时监听屏幕...

    安卓一键锁屏实现,内含app

    KeyguardManager keyguardManager = (KeyguardManager) getSystemService(KEYGUARD_SERVICE); KeyguardLock lock = keyguardManager.newKeyguardLock("MyKeyguardLock"); ``` 然后,我们编写一个方法来实现一键锁屏...

    息屏下唤醒和解锁手机(java-js).rar

    KeyguardManager keyguardManager = (KeyguardManager) getSystemService(KEYGUARD_SERVICE); KeyguardLock keyguardLock = keyguardManager.newKeyguardLock("MyKeyguardLock"); keyguardLock.disableKeyguard(); `...

    android锁屏功能

    KeyguardManager keyguardManager = (KeyguardManager) getSystemService(KEYGUARD_SERVICE); keyguardManager.requestKeyguardLock().lock(); ``` 5. **防止安全问题**:为了确保安全,应用应遵循最佳实践,避免...

    安卓手机锁屏代码

    KeyguardManager keyguardManager = (KeyguardManager) getSystemService(KEYGUARD_SERVICE); KeyguardManager.KeyguardLock keyguardLock = keyguardManager.newKeyguardLock("LockScreenTag"); keyguardLock....

    Android代码模拟按键事件

    KeyguardManager keyguardManager = (KeyguardManager) getSystemService(KEYGUARD_SERVICE); PowerManager powerManager = (PowerManager) getSystemService(POWER_SERVICE); if (keyguardManager....

    一键锁屏功能源码.zip

    KeyguardManager keyguardManager = (KeyguardManager) getSystemService(KEYGUARD_SERVICE); keyguardManager.requestDismissKeyguard(this, new KeyguardManager.OnKeyguardDismissListener() { @Override ...

    【拯救电源键】最详尽的android开发一键锁屏实例 源码

    KeyguardManager keyguardManager = (KeyguardManager) getSystemService(KEYGUARD_SERVICE); PowerManager powerManager = (PowerManager) getSystemService(POWER_SERVICE); ``` 2. 创建锁屏意图:接着,创建一个`...

    基于距离传感器的自动锁屏程序

    KeyguardManager keyguardManager = (KeyguardManager) getSystemService(KEYGUARD_SERVICE); if (keyguardManager.isKeyguardLocked()) { keyguardManager.requestDismissKeyguard(this, null); } } else { /...

    Android一键锁屏源码

    KeyguardManager keyguardManager = (KeyguardManager) getSystemService(KEYGUARD_SERVICE); keyguardManager.requestLockNow(); wakeLock.release(); ``` 这段代码获取了`PowerManager`和`KeyguardManager`的...

Global site tag (gtag.js) - Google Analytics