package com.mosjoy.ad.zdlock; |
import android.app.KeyguardManager; |
import android.app.Service; |
import android.content.BroadcastReceiver; |
import android.content.Context; |
import android.content.Intent; |
import android.content.IntentFilter; |
import android.os.IBinder; |
import android.util.Log; |
public class ZdLockService extends Service { |
private static String TAG = "ZdLockService" ; |
private Intent zdLockIntent = null ; |
private KeyguardManager mKeyguardManager = null ; |
private KeyguardManager.KeyguardLock mKeyguardLock = null ; |
|
@Override |
public IBinder onBind(Intent arg0) { |
return null ; |
} |
public void onCreate() { |
super .onCreate(); |
zdLockIntent = new Intent(ZdLockService. this , MainLockActivity. class ); |
zdLockIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); |
/* 注册广播 */ |
IntentFilter mScreenOnFilter = new IntentFilter( |
"android.intent.action.SCREEN_ON" ); |
ZdLockService. this .registerReceiver(mScreenOnReceiver, mScreenOnFilter); |
/* 注册广播 */ |
IntentFilter mScreenOffFilter = new IntentFilter( |
"android.intent.action.SCREEN_OFF" ); |
ZdLockService. this .registerReceiver(mScreenOffReceiver, |
mScreenOffFilter); |
ZdLockService. this .registerReceiver(mScreenOnReceiver, mScreenOnFilter); |
mKeyguardManager = (KeyguardManager) this .getApplicationContext().getSystemService(Context.KEYGUARD_SERVICE); |
mKeyguardLock = mKeyguardManager.newKeyguardLock( "zdLock 1" ); |
} |
public int onStartCommand(Intent intent, int flags, int startId) { |
return Service.START_STICKY; |
} |
public void onDestroy() { |
super .onDestroy(); |
// 在此重新启动 |
startService( new Intent(ZdLockService. this , ZdLockService. class )); |
} |
//屏幕变亮的广播,我们要隐藏默认的锁屏界面 |
private BroadcastReceiver mScreenOnReceiver = new BroadcastReceiver(){ |
@Override |
public void onReceive(Context context , Intent intent) { |
|
Log.i(TAG, intent.getAction()); |
if (intent.getAction().equals( "android.intent.action.SCREEN_ON" )){ |
Log.i(TAG, "----------------- android.intent.action.SCREEN_ON------" ); |
// mKeyguardManager = (KeyguardManager)context.getSystemService(Context.KEYGUARD_SERVICE); |
// mKeyguardLock = mKeyguardManager.newKeyguardLock("zdLock 1"); |
// mKeyguardLock.disableKeyguard(); |
} |
} |
|
}; |
|
//屏幕变暗/变亮的广播 , 我们要调用KeyguardManager类相应方法去解除屏幕锁定 |
private BroadcastReceiver mScreenOffReceiver = new BroadcastReceiver(){ |
@Override |
public void onReceive(Context context , Intent intent) { |
String action = intent.getAction() ; |
|
Log.i(TAG, intent.toString()); |
|
if (action.equals( "android.intent.action.SCREEN_OFF" ) |
|| action.equals( "android.intent.action.SCREEN_ON" ) ){ |
/* 获取KeyGuardManager对象 */ |
mKeyguardLock.disableKeyguard(); |
startActivity(zdLockIntent); |
} |
} |
|
}; |
} |