`
bogongjie
  • 浏览: 235330 次
  • 性别: Icon_minigender_1
  • 来自: 苏州
社区版块
存档分类
最新评论

android 屏幕解鎖方式

阅读更多

屏幕解鎖方式一:

這種方式是目前用的比較多的方式,使用KeyguardManager 的方式來解鎖,使用這種方式比較簡便一點,但是也有一點不好的地方,它用在程序中,當程序退出機器重啟後,這種效果就沒有了,達不到長久解鎖的效果.

KeyguardManager的應用:

 

 

KeyguardManager Manger = (KeyguardManager)getSystemService(KEYGUARD_SERVICE);
KeyguardLock mLock = Manager.newKeyguardLock("unlock");
mLock.disableKeyguard();

 

使用完成後要對它進行:

mLock.reenableKeyguard();

 

使用keyguardManager要在manifest中添加:

 

<uses-permission android:name="android.permission.WAKE_LOCK" />
<uses-permission android:name="android.permission.DISABLE_KEYGUARD"/>

 

 

屏幕解鎖方式二:

使用這種方式,可能覺得比較麻煩一點.它來源于google的setting源碼,跟椐鎖屏的那部分源碼更改過來的,跟椐本人的實驗可行.它的好處就是它能從根本上解決鎖屏的問題.直接把目前的鎖屏方式改為none的模式;在這種情況下,不管機器重啟還是退出程序,機器都不會再鎖屏了.它的不好的地方就是因為來源于源碼,所以要在源碼中進行編譯,直接使用會出錯的情況.

下面是代碼:

 

private void updateUnlockMethodAndFinish(int quality, boolean disabled) {
		// TODO Auto-generated method stub
		
        int minQuality = mDevicePolicyManager.getPasswordQuality(null);
        if (quality < minQuality) {
            quality = minQuality;
        }
        quality = upgradeQualityForEncryption(quality);

        if (quality >= DevicePolicyManager.PASSWORD_QUALITY_NUMERIC) {
        } else if (quality == DevicePolicyManager.PASSWORD_QUALITY_UNSPECIFIED) {
        	mLockPatternUtils.clearLock(true);
        	mLockPatternUtils.setLockScreenDisabled(disabled);
        }
	}
	private int upgradeQualityForEncryption(int quality) {
        int encryptionStatus = mDevicePolicyManager.getStorageEncryptionStatus();
        boolean encrypted = (encryptionStatus == DevicePolicyManager.ENCRYPTION_STATUS_ACTIVE)
                || (encryptionStatus == DevicePolicyManager.ENCRYPTION_STATUS_ACTIVATING);
        if (encrypted) {
            if (quality < DevicePolicyManager.PASSWORD_QUALITY_NUMERIC) {
                quality = DevicePolicyManager.PASSWORD_QUALITY_NUMERIC;
            }
        }
        return quality;
    }

 使用這種方式,要獲取系統權限:

android.uid.system

 

屏幕解鎖方式三:

使用这种方式,可以直接在代码中使用,不需要在源码中重新build.

private void clearLock() {
		try {
			Class<?> c = Class.forName("com.android.internal.widget.LockPatternUtils");
			Constructor<?>[] constructors = c.getDeclaredConstructors();
			Constructor<?> constructor = constructors[0];
			constructor.setAccessible(true);
			Object clazz = constructor.newInstance(this);
			Method clearLockMethod = clazz.getClass().getDeclaredMethod("clearLock", boolean.class);
			clearLockMethod.setAccessible(true);
			clearLockMethod.invoke(clazz, false);

			Method setLockScreenDisabledMethod = clazz.getClass().getDeclaredMethod(
					"setLockScreenDisabled", boolean.class);
			setLockScreenDisabledMethod.setAccessible(true);
			setLockScreenDisabledMethod.invoke(clazz, true);
		} catch (Exception e) {
			// TODO: handle exception
			e.printStackTrace();
		}
	}

 这种方式也需要系统权限:

android:sharedUserId="android.uid.system"

 

分享到:
评论

相关推荐

    jquery Android屏幕解锁插件patternlock

    **jQuery Android屏幕解锁插件PatternLock详解** PatternLock是一款基于jQuery的Android风格图案解锁插件,它模拟了Android系统中的图形解锁方式,适用于Web应用程序,为用户提供了一种安全且直观的验证方式。这款...

    行业分类-设备装置-一种基于Android平台的手机屏幕解锁方法.zip

    2. **屏幕解锁的历史发展**:回顾早期的Android屏幕解锁方式,如PIN码、图案解锁,以及随着时间推移如何演变为更高级的技术。 3. **新解锁方法的原理**:详细介绍所提出的新解锁方法,可能包括其工作流程、技术实现...

    jquery Android屏幕解锁.zip

    在这个案例中,"jQuery Android屏幕解锁"插件提供了模拟Android设备解锁屏幕的接口,使得用户可以在网页上实现滑动解锁、图案解锁等常见Android解锁方式。 该插件的实现可能基于HTML5的Canvas元素或者SVG矢量图形,...

    Android屏幕解锁图案破解 Python代码

    Android屏幕解锁图案破解 Python代码

    jquery插件来模拟Android屏幕解锁.zip

    本文将深入探讨使用jQuery插件来模拟Android屏幕解锁的功能。 首先,jQuery插件是jQuery库的一种扩展,它允许开发者创建可重用的代码模块,以增强网页的交互性和功能。在"jquery插件来模拟Android屏幕解锁.zip"这个...

    jquery九宫格模拟Android屏幕解锁插件patternlock

    **jQuery九宫格模拟Android屏幕解锁插件PatternLock详解** 在网页交互设计中,为了提供更贴近用户习惯的体验,有时我们需要将移动端Android设备的九宫格解锁方式移植到Web应用上。`PatternLock`就是一个专门为此...

    HTML5 Android手机屏幕解锁模拟器代码

    Android屏幕解锁通常涉及到安全层(如PIN码、图案或指纹识别),以及系统级别的权限控制。模拟器可能需要模拟这些安全特性,提供一个接近真实的解锁体验。 总的来说,这个项目涵盖了HTML5的多个核心特性,以及...

    Android-android滑动解锁

    在Android开发中,滑动解锁是一种常见的用户交互方式,它为用户提供了一种便捷且直观的设备解锁或界面切换手段。本篇文章将深入探讨Android滑动解锁的实现原理、设计模式以及如何自定义滑动解锁视图。 首先,...

    Android 图形解锁源码.rar

    Android图形解锁是Android操作系统中一种常见的用户验证方式,它通过用户在九宫格或自定义图形上绘制特定路径来解锁设备,为设备提供了便捷且安全的保护机制。这份"Android图形解锁源码.rar"正是针对这一功能的源...

    jQuery仿Android屏幕解锁特效-触摸屏解锁特效

    国外一款jQuery仿Android系统解锁特效,用于用户登录界面时验证有效性。 具体操作方法很简单,鼠标按住不放根据提示图画出大体样式就OK了,大家试试吧。 效果详情可参考http://www.xwcms.net/js/bddm/83458.html

    Android 图案解锁(九宫格解锁)源码.zip

    在Android系统中,图案解锁(九宫格解锁)是一种常见的用户认证方式,它允许用户通过在9个点之间画出特定的连线图案来解锁设备。这个功能为用户提供了一种直观且快速的解锁体验,同时也增加了安全性。下面我们将深入...

    android-手势解锁源码2

    在Android平台上,手势解锁是一种常见的用户验证方式,它允许用户通过在屏幕上绘制特定的图案来解锁设备或应用。本文将深入解析"android-手势解锁源码2"中的关键技术和实现细节,帮助你理解和掌握Android手势解锁的...

    Android高级应用源码-android 滑动解锁实现源代码.rar

    在Android平台上,滑动解锁是一种常见的用户界面交互方式,它为用户提供了一种安全且直观的设备解锁手段。本文将深入探讨Android滑动解锁的实现原理,并通过分析提供的源码来阐述其关键知识点。 首先,滑动解锁的...

    实用的Android手势解锁

    这种解锁方式不仅具有较高的可用性,还能提供一定程度的安全性,因为每个用户的手势路径都是独一无二的。本篇文章将深入探讨如何在Android项目中实现一个实用的手势解锁功能。 首先,我们需要理解手势解锁的基本...

    Android 屏幕唤醒 + 屏幕解锁 + 开机服务监听(android.intent.action.BOOT-COMPLET)

    Android 屏幕唤醒 + 屏幕解锁 + 开机服务监听(android.intent.action.BOOT_COMPLET)添加权限:{//开机监听&lt;uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED"/&gt;&lt;uses-permission android...

    Android手势解锁

    在Android平台上,手势解锁是一种常见的安全机制,它允许用户通过自定义的手势路径来解锁设备或应用程序,提供了方便且个性化的解锁方式。本示例代码是针对Android平台设计的滑动手势解锁功能,类似于支付宝应用中的...

    Android屏幕九宫格解锁代码参考.zip

    这个"Android屏幕九宫格解锁代码参考.zip"压缩包提供了一个简单的实现案例,方便开发者理解和学习如何构建这样的功能。以下是关于Android九宫格解锁的详细知识点: 1. **解锁逻辑**: 九宫格解锁的基本原理是将...

    Android_解锁屏幕与锁屏代码

    在Android系统中,屏幕锁定和解锁是用户交互的重要部分,为用户提供隐私保护和便捷操作。本文将深入探讨如何利用距离传感器实现自动锁屏和解锁功能,以提高用户体验。距离传感器通常用于检测设备是否被用户紧贴(如...

    android 仿制ios 屏幕数字解锁

    在Android平台上实现iOS风格的数字屏幕解锁是一种常见的需求,它能为用户提供熟悉的界面和操作体验。这个项目"NumberLockDemo-master"显然是一个Android应用示例,用于演示如何在Android上创建一个类似于iOS的数字...

Global site tag (gtag.js) - Google Analytics