Android无视屏幕解锁保护界面
16lz
2021-01-26
标 题: Android无视屏幕解锁保护界面
作 者: backtract
链 接:http://my.oschina.net/backtract/blog/133644
Android存在三种屏幕解锁保护:图案解锁、PIN密码解锁和密码解锁。
我们可以使用java.lang.Object.android.app.KeyguardManger中的子类KeyguardLock可以控制Disable掉这些屏幕锁界面,从而达到不用输入密码,直接过掉屏幕锁界面来使用手机
主要使用KeyguardLock.disableKeyguard()和KeyguardLock.enableKeyguard()方法来Disable、enable屏幕锁界面
代码如下:
BootBroadcastReceiver.java 开机启动广播接收者调用PhoneListenService服务
package cn.itcast.phone;import android.content.BroadcastReceiver;import android.content.Context;import android.content.Intent;public class BootBroadcastReceiver extends BroadcastReceiver {@Overridepublic void onReceive(Context context, Intent intent) {Intent service = new Intent(context, PhoneListenService.class);context.startService(service);}}
PhoneListenService.java 服务
package cn.itcast.phone;import android.app.KeyguardManager;import android.app.KeyguardManager.KeyguardLock;import android.app.Service;import android.content.Intent;import android.os.IBinder;import android.util.Log;public class PhoneListenService extends Service {private static final String TAG = "PhoneListenService";@Overridepublic void onCreate() {//获取KeyguardManagerKeyguardManager manager = (KeyguardManager) getSystemService(KEYGUARD_SERVICE);if (manager.inKeyguardRestrictedInputMode()) {Log.i(TAG, "come in...");// 处于锁定界面,界面则通过KeyguardLock类方法来解锁//KeyguardLock keyguard = manager.newKeyguardLock("KeyguardLock");KeyguardLock keyguard = manager.newKeyguardLock(this.getClass().getName());keyguard.disableKeyguard();}Log.i(TAG, "service created");}@Overridepublic void onDestroy() {Log.i(TAG, "service destroy!");}@Overridepublic IBinder onBind(Intent intent) {// TODO Auto-generated method stubreturn null;}}AndroidManifest.xml
<manifest xmlns:android="http://schemas.android.com/apk/res/android" package="cn.itcast.phone" android:versionCode="1" android:versionName="1.0" > <application android:allowBackup="true" android:icon="@drawable/ic_launcher" android:label="@string/app_name" android:theme="@style/AppTheme" > <service android:name=".PhoneListenService" /><receiver android:name=".BootBroadcastReceiver"><intent-filter> <action android:name="android.intent.action.BOOT_COMPLETED"/> </intent-filter></receiver> </application> <uses-sdk android:minSdkVersion="8" /> <uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED"/> <uses-permission android:name="android.permission.DISABLE_KEYGUARD"/> </manifest>
由于屏幕锁定时通过电脑上豌豆荚等软件只能安装Apk,并不能启动apk,所以此Demo程序写成了开机启动,即当屏幕锁屏时,通过电脑豌豆荚等软件安装此软件后重启即可实现Pass掉屏幕锁界面。
Android 2.2,2.3,4.0平台测试通过。
参考: http://www.wooyun.org/bugs/wooyun-2010-09978
更多相关文章
- android游戏引擎andengine学习系列二:简单的例子
- 取消程序在最近六项中显示以及直接调用信息短信界面
- Android(安卓)如何实现欢迎界面(Splash Screen)
- android 5 设置图案锁,锁屏界面进入相机拍照、查看锁定的照片后,退
- Android(安卓)6.0动态权限及跳转GPS设置界面
- 显示界面的时候直接获取到EditText焦点弹出键盘
- Android邪门歪道
- Android从网络中获得一张图片并显示在屏幕上的实例详解
- Android(安卓)干货App开发总结