MonitoringService.java :  » UnTagged » virtual-guard » wh » VirtualGuard » Android Open Source

Android Open Source » UnTagged » virtual guard 
virtual guard » wh » VirtualGuard » MonitoringService.java
package wh.VirtualGuard;

import java.util.ArrayList;
import java.util.List;
import wh.VirtualGuard.AlertSender.AlertSender;
import wh.VirtualGuard.AlertSender.GPSSender;
import wh.VirtualGuard.AlertSender.PhoneSender;
import wh.VirtualGuard.AlertTrigger.CollisionRecognizeTrigger;
import wh.VirtualGuard.AlertTrigger.IntentTrigger;
import wh.VirtualGuard.AlgorithmUnits.CollisionRecognizeAlgorithmUnits.ComplexCollisionRecognizeAlgorithm;
import wh.VirtualGuard.AlgorithmUnits.CollisionRecognizeAlgorithmUnits.SimpleCollisionRecognizeAlgorithm;
import wh.VirtualGuard.GuardFramwork.GuardFramwork;
import android.app.Service;
import android.content.Intent;
import android.os.IBinder;
import android.preference.PreferenceManager.OnActivityResultListener;
import android.util.Log;
import android.widget.Toast;

public class MonitoringService extends Service implements OnActivityResultListener{
  private GuardFramwork guardFramwork;
  private CollisionRecognizeTrigger collisionRecognizeTrigger;
  private PhoneSender phoneSender;
  private GPSSender gpsSender;
  private IntentTrigger voiceIntentTrigger;
  
  @Override
  public IBinder onBind(Intent arg0) {
    // TODO Auto-generated method stub
    return null;
  }

  @Override
  public void onStart(Intent intent, int startId){
    // TODO Auto-generated method stub
    super.onStart(intent, startId);
    
    String phoneNumber=intent.getStringExtra("phoneNumber");
    int intervalTime=intent.getIntExtra("intervalTime", 1000);
    boolean voiceRecognizeEnable=intent.getBooleanExtra("voiceRecognize", false);
    boolean collisionRecognizeEnable=intent.getBooleanExtra("collisionRecognize", false);
    boolean telephoneEnable=intent.getBooleanExtra("telephoneEnable", false);
    boolean gpsEnable=intent.getBooleanExtra("gpsEnable", false);

    if (phoneNumber==null || intervalTime<200 || intervalTime>5000){
      Toast.makeText(this, "Input Error,phoneNumber shouldn't be null, and intervalTime must between 200 and 5000.", Toast.LENGTH_LONG).show();
      Log.e("MonitoringService", "Input Error");
      return;
    }
    setForeground(true);
    
    guardFramwork=GuardFramwork.getInstance();
    guardFramwork.setIntervalTime(1000);
    
    List<AlertSender> alertSenderList=new ArrayList<AlertSender>();

    if (telephoneEnable)
    {
      phoneSender=new PhoneSender(this,phoneNumber);
      alertSenderList.add(phoneSender);
    }
    
    if(gpsEnable)
    {
      gpsSender=new GPSSender(this);
      alertSenderList.add(gpsSender);
    }
    
    if(voiceRecognizeEnable)
    {
      voiceIntentTrigger=new IntentTrigger(this, "VoiceRecognizeTrigger");
      guardFramwork.addTrigger(voiceIntentTrigger, alertSenderList);
    }
    
    if (collisionRecognizeEnable)
    {
      ComplexCollisionRecognizeAlgorithm complexCollisionRecognizeAlgorithm=new ComplexCollisionRecognizeAlgorithm();
      collisionRecognizeTrigger=new CollisionRecognizeTrigger(this,complexCollisionRecognizeAlgorithm);
      guardFramwork.addTrigger(collisionRecognizeTrigger, alertSenderList);
    }
    
    guardFramwork.startMonitoring();
  }
  
  @Override
  public void onDestroy() {
    // TODO Auto-generated method stub
    guardFramwork.stopMonitoring();
    super.onDestroy();
  }

  public boolean onActivityResult(int requestCode, int resultCode, Intent data) {
    // TODO Auto-generated method stub
    return false;
  }
}
java2s.com  | Contact Us | Privacy Policy
Copyright 2009 - 12 Demo Source and Support. All rights reserved.
All other trademarks are property of their respective owners.