Skip to content

Most visited

Recently visited

navigation

KeyguardManager

public class KeyguardManager
extends Object

java.lang.Object
   ↳ android.app.KeyguardManager


Class that can be used to lock and unlock the keyboard. The actual class to control the keyboard locking is KeyguardManager.KeyguardLock.

Instances of this class must be obtained using Context.getSystemService(Class) with the argument KeyguardManager.class or Context.getSystemService(String) with the argument Context.KEYGUARD_SERVICE.

Summary

Nested classes

class KeyguardManager.KeyguardDismissCallback

Callback passed to ERROR(/KeyguardManager#dismissKeyguard) to notify caller of result. 

class KeyguardManager.KeyguardLock

This class was deprecated in API level 13. 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 by newKeyguardLock(String) that allows you to disable / reenable the keyguard.  

interface KeyguardManager.OnKeyguardExitResult

This interface was deprecated in API level O. Use KeyguardManager.KeyguardDismissCallback Callback passed to exitKeyguardSecurely(KeyguardManager.OnKeyguardExitResult) to notify caller of result.  

Public methods

Intent createConfirmDeviceCredentialIntent(CharSequence title, CharSequence description)

Get an intent to prompt the user to confirm credentials (pin, pattern or password) for the current user of the device.

void exitKeyguardSecurely(KeyguardManager.OnKeyguardExitResult callback)

This method was deprecated in API level 13. 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.

boolean isDeviceLocked()

Returns whether the device is currently locked and requires a PIN, pattern or password to unlock.

boolean isDeviceSecure()

Returns whether the device is secured with a PIN, pattern or password.

boolean isKeyguardLocked()

Return whether the keyguard is currently locked.

boolean isKeyguardSecure()

Return whether the keyguard is secured by a PIN, pattern or password or a SIM card is currently locked.

KeyguardManager.KeyguardLock newKeyguardLock(String tag)

This method was deprecated in API level 13. 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 calling Context.getSystemService(). This class is wrapped by KeyguardManager.

void requestDismissKeyguard(Activity activity, KeyguardManager.KeyguardDismissCallback callback)

If the device is currently locked (see isKeyguardLocked(), requests the Keyguard to be dismissed.

Inherited methods

From class java.lang.Object

Public methods

createConfirmDeviceCredentialIntent

added in API level 21
Intent createConfirmDeviceCredentialIntent (CharSequence title, 
                CharSequence description)

Get an intent to prompt the user to confirm credentials (pin, pattern or password) for the current user of the device. The caller is expected to launch this activity using startActivityForResult(Intent, int) and check for RESULT_OK if the user successfully completes the challenge.

Parameters
title CharSequence

description CharSequence

Returns
Intent the intent for launching the activity or null if no password is required.

exitKeyguardSecurely

added in API level 1
void exitKeyguardSecurely (KeyguardManager.OnKeyguardExitResult callback)

This method was deprecated in API level 13.
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.

Requires the DISABLE_KEYGUARD permission.

Parameters
callback KeyguardManager.OnKeyguardExitResult: Let's you know whether the operation was succesful and it is safe to launch anything that would normally be considered safe once the user has gotten past the keyguard.

inKeyguardRestrictedInputMode

added in API level 1
boolean inKeyguardRestrictedInputMode ()

If keyguard screen is showing or in restricted key input mode (i.e. in keyguard password emergency screen). When in such mode, certain keys, such as the Home key and the right soft keys, don't work.

Returns
boolean true if in keyguard restricted input mode.

See also:

  • inKeyguardRestrictedKeyInputMode()

isDeviceLocked

added in API level 22
boolean isDeviceLocked ()

Returns whether the device is currently locked and requires a PIN, pattern or password to unlock.

Returns
boolean true if unlocking the device currently requires a PIN, pattern or password.

isDeviceSecure

added in API level 23
boolean isDeviceSecure ()

Returns whether the device is secured with a PIN, pattern or password.

See also isKeyguardSecure() which treats SIM locked states as secure.

Returns
boolean true if a PIN, pattern or password was set.

isKeyguardLocked

added in API level 16
boolean isKeyguardLocked ()

Return whether the keyguard is currently locked.

Returns
boolean true if keyguard is locked.

isKeyguardSecure

added in API level 16
boolean isKeyguardSecure ()

Return whether the keyguard is secured by a PIN, pattern or password or a SIM card is currently locked.

See also isDeviceSecure() which ignores SIM locked states.

Returns
boolean true if a PIN, pattern or password is set or a SIM card is locked.

newKeyguardLock

added in API level 1
KeyguardManager.KeyguardLock newKeyguardLock (String tag)

This method was deprecated in API level 13.
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 calling Context.getSystemService(). This class is wrapped by KeyguardManager.

Parameters
tag String: A tag that informally identifies who you are (for debugging who is disabling he keyguard).

Returns
KeyguardManager.KeyguardLock A KeyguardManager.KeyguardLock handle to use to disable and reenable the keyguard.

requestDismissKeyguard

void requestDismissKeyguard (Activity activity, 
                KeyguardManager.KeyguardDismissCallback callback)

If the device is currently locked (see isKeyguardLocked(), requests the Keyguard to be dismissed.

If the Keyguard is not secure or the device is currently in a trusted state, calling this method will immediately dismiss the Keyguard without any user interaction.

If the Keyguard is secure and the device is not in a trusted state, this will bring up the UI so the user can enter their credentials.

Parameters
activity Activity: The activity requesting the dismissal. The activity must be either visible by using FLAG_SHOW_WHEN_LOCKED or must be in a state in which it would be visible if Keyguard would not be hiding it. If that's not the case, the request will fail immediately and onDismissError() will be invoked.

This value must never be null.

callback KeyguardManager.KeyguardDismissCallback: The callback to be called if the request to dismiss Keyguard was successful or null if the caller isn't interested in knowing the result. The callback will not be invoked if the activity was destroyed before the callback was received.

This site uses cookies to store your preferences for site-specific language and display options.

Get the latest Android developer news and tips that will help you find success on Google Play.

* Required Fields

Hooray!

Browse this site in ?

You requested a page in , but your language preference for this site is .

Would you like to change your language preference and browse this site in ? If you want to change your language preference later, use the language menu at the bottom of each page.

This class requires API level or higher

This doc is hidden because your selected API level for the documentation is . You can change the documentation API level with the selector above the left navigation.

For more information about specifying the API level your app requires, read Supporting Different Platform Versions.

Take a one-minute survey?
Help us improve Android tools and documentation.