package com.joyplus.showkey.screensaver;// import android.app.AlarmManager; import android.app.KeyguardManager; import android.app.KeyguardManager.KeyguardLock; import android.app.PendingIntent; 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 ScreenSaverService extends Service { private static int mNewScreenSaver = 1 ; @Override public IBinder onBind(Intent intent) { // TODO Auto-generated method stub return null; } @Override public void onCreate() { // TODO Auto-generated method stub super.onCreate(); Log.d(AlarmAlertWakeLock.TAG, "ScreenSaverService--->onCreate()"); /* ��ȡ �����ػ��� */ KeyguardManager mKeyguardManager = (KeyguardManager)getSystemService(Context.KEYGUARD_SERVICE); KeyguardLock mKeyguardLock = mKeyguardManager.newKeyguardLock("AlarmClock"); mKeyguardLock.disableKeyguard(); buildScreenBroadcastReceiver(); } @Override public void onStart(Intent intent, int startId) { // TODO Auto-generated method stub super.onStart(intent, startId); Log.d(AlarmAlertWakeLock.TAG, "ScreenSaverService--->onStart()"); } @Override public void onDestroy() { // TODO Auto-generated method stub unregisterReceiver(mMasterResetReciever); PowerManagerWakeLock.release(); super.onDestroy(); Log.d(AlarmAlertWakeLock.TAG, "ScreenSaverService--->onDestroy()"); } private void buildScreenBroadcastReceiver(){ IntentFilter f = new IntentFilter(); f.addAction(Intent.ACTION_SCREEN_ON); f.addAction(Intent.ACTION_SCREEN_OFF); // f.addAction("android.net.wifi.WIFI_AP_STATE_CHANGED"); f.addAction(Intent.ACTION_PACKAGE_REMOVED); f.addAction("ScreenShow"); f.addAction("NewScreenSaver"); f.addDataScheme("package"); registerReceiver(mMasterResetReciever, f); } BroadcastReceiver mMasterResetReciever= new BroadcastReceiver() { public void onReceive(Context context, Intent intent){ try{ String action = intent.getAction(); Log.d("BroadcastReceiver", "action = " + action); // if(action.equals(Intent.ACTION_SCREEN_ON) ){ // Log.d(AlarmAlertWakeLock.TAG,"-------->Intent.ACTION_SCREEN_ON"); // stopScreenSaverTimeOut(); // } // if(action.equals(Intent.ACTION_SCREEN_OFF) ){ // Log.d(AlarmAlertWakeLock.TAG,"-------->Intent.ACTION_SCREEN_OFF||mNewScreenSaver:="+mNewScreenSaver); // // if( mNewScreenSaver == 1 ){ // startScreenSaverTimeOut(); // } // } if(action.equals(Intent.ACTION_PACKAGE_REMOVED)){ if(mNewScreenSaver == 1){ Intent localIntent = new Intent(); localIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); localIntent.setClass(ScreenSaverService.this, ScreenShow.class); startActivity(localIntent); } }else if(action.equals("ScreenShow") ){ mNewScreenSaver = 0 ; }else if(action.equals("NewScreenSaver") ){ Log.d(AlarmAlertWakeLock.TAG,"-------->mNewScreenSaver=1"); mNewScreenSaver = 1 ; }if (action.equals(Intent.ACTION_SCREEN_ON)) { } else if (action.equals(Intent.ACTION_SCREEN_OFF)) {//������ܵ��ر���Ļ�Ĺ㲥 if (mNewScreenSaver==0) { //������Ļ���ѣ����� PowerManagerWakeLock.acquire(ScreenSaverService.this); } PowerManagerWakeLock.acquire(ScreenSaverService.this); Intent intent2 = new Intent(ScreenSaverService.this, ScreenShow.class); intent2.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); startActivity(intent2); PowerManagerWakeLock.release(); } }catch(Exception e){ Log.d("Output:", e.toString()); } } }; // private void startScreenSaverTimeOut(){ // Log.d(AlarmAlertWakeLock.TAG,"------>startScreenSaverTimeOut"); // Intent intent = new Intent(this, AlarmReceiver.class); // PendingIntent pendingIntent = PendingIntent.getBroadcast(this, 0, intent, PendingIntent.FLAG_CANCEL_CURRENT); // // AlarmManager alarmManager = (AlarmManager) getSystemService(Context.ALARM_SERVICE); // alarmManager.set(AlarmManager.RTC_WAKEUP, System.currentTimeMillis() + (5*1000), pendingIntent); // alarmManager.cancel(null); // } // private void stopScreenSaverTimeOut(){ // Log.d(AlarmAlertWakeLock.TAG,"------>stopScreenSaverTimeOut"); // Intent intent = new Intent(this, AlarmReceiver.class); // PendingIntent pendingIntent = PendingIntent.getBroadcast(this, 0, intent, PendingIntent.FLAG_CANCEL_CURRENT); // // AlarmManager alarmManager = (AlarmManager) getSystemService(Context.ALARM_SERVICE); // alarmManager.cancel(pendingIntent); // } }