Android Open Source - CopresenceDataCollector Sensor Listener






From Project

Back to project page CopresenceDataCollector.

License

The source code is released under:

Copyright (c) 2014, Xiang Gao All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: * Re...

If you think the Android project CopresenceDataCollector listed in this page is inappropriate, such as containing malicious code/tools or violating the copyright, please email info at java2s dot com, thanks.

Java Source Code

package org.sesy.coco.datacollector;
/* ww w.ja  v  a2s.  c o m*/

import org.apache.log4j.Level;
import org.apache.log4j.LogManager;
import org.apache.log4j.Logger;
import org.sesy.coco.datacollector.database.Entry;
import org.sesy.coco.datacollector.log.ConfigureLog4J;

import android.app.Service;
import android.content.Context;
import android.content.Intent;
import android.hardware.Sensor;
import android.hardware.SensorEvent;
import android.hardware.SensorEventListener;
import android.hardware.SensorManager;
import android.os.CountDownTimer;
import android.os.IBinder;
import android.os.SystemClock;

public class SensorListener extends Service implements SensorEventListener{
  
  private SensorManager sensorManager; 
  private Sensor sensorMAG, sensorLIG, sensorTEMP, sensorHUM, sensorBARO; 
  private CountDownTimer timer;
  private int flag;
  //private int gt, ob;
    Logger log;
    
  @Override
  public void onCreate()
  {
    super.onCreate();
    log = Logger.getLogger(SensorListener.class);  
        ConfigureLog4J.configure(this);  
        LogManager.getRootLogger().setLevel((Level)Level.DEBUG);   
        //log.info("log configured.");
  }
  @Override
  public int onStartCommand(Intent intent, int flags, int startId){
    log.info("Acclistener task started");  
    WorkerService.sensorTask = true;
    flag = intent.getIntExtra("flag", Constants.STATUS_SENSOR_MLTHB);
    //gt = intent.getIntExtra("gt", 0);
    //ob = intent.getIntExtra("ob", 0);
    WorkerService.sensorsClear();
    
    timer = new CountDownTimer(30*1000, 1000) {

      @Override
      public void onFinish() {
        // TODO Auto-generated method stub
        sensorManager.unregisterListener(SensorListener.this);
        log.info("Acc scan finished");
        WorkerService.sensorTaskDone = true;
        stopSelf();
      }

      @Override
      public void onTick(long millisUntilFinished) {
        // TODO Auto-generated method stub
        
      }
      
    };
    
    init();
    /*sensorManager = (SensorManager) this.getSystemService(Context.SENSOR_SERVICE);
       if(sensorManager == null) { 
         throw new UnsupportedOperationException("Sensors are not supported");
       } 
      // Get default sensor of type ACCELEROMETER
      sensorACC = sensorManager.getDefaultSensor(Sensor.TYPE_ACCELEROMETER); 
      
        // Register AccListener for given sensor
      if(sensorACC != null) { 
         sensorManager.registerListener(this, sensorACC, SensorManager.SENSOR_DELAY_FASTEST); 
         timer.start();
         log.info("Acc scan started");
      }*/
    return START_NOT_STICKY;
  }
  
    
  @Override
  public void onAccuracyChanged(Sensor sensor, int accuracy) {
    // TODO Auto-generated method stub
    
  }

  @Override
  public void onSensorChanged(SensorEvent event) {
    // TODO Auto-generated method stub
    long ts = SystemClock.elapsedRealtime() - WorkerService.metaTS;
    switch(event.sensor.getType()){
    /*case Sensor.TYPE_ACCELEROMETER:
      String fp1 = event.values[0] + "#" + event.values[1] + "#" + event.values[2];
      Entry eobj1 = new Entry(ob, ts, gt, Constants.STATUS_SENSOR_ACC, fp1);  
      WorkerService.accList.add(eobj1);
      break;*/
    /*case Sensor.TYPE_LINEAR_ACCELERATION:
      String fp2 = event.values[0] + "#" + event.values[1] + "#" + event.values[2];
      Entry eobj2 = new Entry(ob, ts, gt, Constants.STATUS_SENSOR_LACC, fp2);  
      WorkerService.laccList.add(eobj2);
      break;*/
    case Sensor.TYPE_MAGNETIC_FIELD:
      String fp3 = event.values[0] + "#" + event.values[1] + "#" + event.values[2];
      Entry eobj3 = new Entry(ts, Constants.STATUS_SENSOR_MAG, fp3);
      WorkerService.magList.add(eobj3);
      break;
    case Sensor.TYPE_LIGHT:
      String fp4 = String.valueOf(event.values[0]);
      Entry eobj4 = new Entry(ts, Constants.STATUS_SENSOR_LIG, fp4);  
      WorkerService.ligList.add(eobj4);
      break;
    /*case Sensor.TYPE_GYROSCOPE:
      String fp5 = event.values[0] + "#" + event.values[1] + "#" + event.values[2];
      Entry eobj5 = new Entry(ob, ts, gt, Constants.STATUS_SENSOR_GYRO, fp5);  
      WorkerService.gyroList.add(eobj5);
      break;*/
    /*case Sensor.TYPE_GRAVITY:
      String fp6 = event.values[0] + "#" + event.values[1] + "#" + event.values[2];
      Entry eobj6 = new Entry(ob, ts, gt, Constants.STATUS_SENSOR_GRAV, fp6);  
      WorkerService.gravList.add(eobj6);
      break;*/
    /*case Sensor.TYPE_ROTATION_VECTOR:
      String fp7 = event.values[0] + "#" + event.values[1] + "#" + event.values[2];
      Entry eobj7 = new Entry(ob, ts, gt, Constants.STATUS_SENSOR_ROT, fp7);  
      WorkerService.rotList.add(eobj7);
      break;*/
    /*case Sensor.TYPE_ORIENTATION:
      String fp8 = event.values[0] + "#" + event.values[1] + "#" + event.values[2];
      Entry eobj8 = new Entry(ob, ts, gt, Constants.STATUS_SENSOR_ORI, fp8);  
      WorkerService.oriList.add(eobj8);
      break;*/
    case Sensor.TYPE_RELATIVE_HUMIDITY:
      String fp9 = String.valueOf(event.values[0]);
      Entry eobj9 = new Entry(ts, Constants.STATUS_SENSOR_HUM, fp9);    
      WorkerService.humList.add(eobj9);
      break;
    case Sensor.TYPE_AMBIENT_TEMPERATURE:
      String fp10 = String.valueOf(event.values[0]);
      Entry eobj10 = new Entry(ts, Constants.STATUS_SENSOR_TEMP, fp10);  
      WorkerService.tempList.add(eobj10);
      break;
    case Sensor.TYPE_PRESSURE:
      String fp11 = String.valueOf(event.values[0]);
      Entry eobj11 = new Entry(ts, Constants.STATUS_SENSOR_BARO, fp11);  
      WorkerService.baroList.add(eobj11);
      break;
    /*case Sensor.TYPE_PROXIMITY:
      String fp12 = String.valueOf(event.values[0]);
      Entry eobj12 = new Entry(ob, ts, gt, Constants.STATUS_SENSOR_PROX, fp12);  
      WorkerService.proxList.add(eobj12);
      break;*/
    default:
      return;
    }    
    
  }

  @Override
  public IBinder onBind(Intent intent) {
    // TODO Auto-generated method stub
    return null;
  }
  
  private void init(){
    sensorManager = (SensorManager) this.getSystemService(Context.SENSOR_SERVICE);
       if(sensorManager == null) { 
         throw new UnsupportedOperationException("Sensors are not supported");
       } 
       
      // Get default sensor of type ACCELEROMETER
      //sensorACC = sensorManager.getDefaultSensor(Sensor.TYPE_ACCELEROMETER); 
      //sensorLACC = sensorManager.getDefaultSensor(Sensor.TYPE_LINEAR_ACCELERATION); 
       if((flag & Constants.STATUS_SENSOR_MAG) != 0)
         sensorMAG = sensorManager.getDefaultSensor(Sensor.TYPE_MAGNETIC_FIELD); 
       if((flag & Constants.STATUS_SENSOR_LIG) != 0)
         sensorLIG = sensorManager.getDefaultSensor(Sensor.TYPE_LIGHT); 
      //sensorGYRO = sensorManager.getDefaultSensor(Sensor.TYPE_GYROSCOPE); 
      //sensorGRAV = sensorManager.getDefaultSensor(Sensor.TYPE_GRAVITY); 
      //sensorROT = sensorManager.getDefaultSensor(Sensor.TYPE_ROTATION_VECTOR); 
      //sensorORI = sensorManager.getDefaultSensor(Sensor.TYPE_ORIENTATION); 
       if((flag & Constants.STATUS_SENSOR_TEMP) != 0)
         sensorTEMP = sensorManager.getDefaultSensor(Sensor.TYPE_AMBIENT_TEMPERATURE); 
       if((flag & Constants.STATUS_SENSOR_HUM) != 0)
         sensorHUM = sensorManager.getDefaultSensor(Sensor.TYPE_RELATIVE_HUMIDITY); 
       if((flag & Constants.STATUS_SENSOR_BARO) != 0)
         sensorBARO = sensorManager.getDefaultSensor(Sensor.TYPE_PRESSURE); 
      //sensorPROX = sensorManager.getDefaultSensor(Sensor.TYPE_PROXIMITY); 
      
      /*if(sensorACC != null) { 
         sensorManager.registerListener(this, sensorACC, SensorManager.SENSOR_DELAY_FASTEST); 
         timer.start();
      }*/
      /*if(sensorLACC != null) { 
          sensorManager.registerListener(this, sensorLACC, SensorManager.SENSOR_DELAY_FASTEST); 
          timer.start();
       }*/
      if(sensorMAG != null && (flag & Constants.STATUS_SENSOR_MAG) != 0) { 
          sensorManager.registerListener(this, sensorMAG, SensorManager.SENSOR_DELAY_FASTEST); 
          timer.start();
       }
      if(sensorLIG != null && (flag & Constants.STATUS_SENSOR_LIG) != 0) { 
          sensorManager.registerListener(this, sensorLIG, SensorManager.SENSOR_DELAY_FASTEST); 
          timer.start();
       }
      /*if(sensorGYRO != null) { 
          sensorManager.registerListener(this, sensorGYRO, SensorManager.SENSOR_DELAY_FASTEST); 
          timer.start();
       }*/
      /*if(sensorGRAV != null) { 
          sensorManager.registerListener(this, sensorGRAV, SensorManager.SENSOR_DELAY_FASTEST); 
          timer.start();
       }*/
      /*if(sensorROT != null) { 
          sensorManager.registerListener(this, sensorROT, SensorManager.SENSOR_DELAY_FASTEST); 
          timer.start();
       }*/
      /*if(sensorORI != null) { 
          sensorManager.registerListener(this, sensorORI, SensorManager.SENSOR_DELAY_FASTEST); 
          timer.start();
       }*/
      if(sensorTEMP != null && (flag & Constants.STATUS_SENSOR_TEMP) != 0) { 
          sensorManager.registerListener(this, sensorTEMP, SensorManager.SENSOR_DELAY_FASTEST); 
          timer.start();
       }
      if(sensorHUM != null && (flag & Constants.STATUS_SENSOR_HUM) != 0) { 
          sensorManager.registerListener(this, sensorHUM, SensorManager.SENSOR_DELAY_FASTEST); 
          timer.start();
       }
      if(sensorBARO != null && (flag & Constants.STATUS_SENSOR_BARO) != 0) { 
          sensorManager.registerListener(this, sensorBARO, SensorManager.SENSOR_DELAY_FASTEST); 
          timer.start();
       }
      /*if(sensorPROX != null) { 
          sensorManager.registerListener(this, sensorPROX, SensorManager.SENSOR_DELAY_FASTEST); 
          timer.start();
       }*/
  }

}




Java Source Code List

org.sesy.coco.datacollector.ARPWorker.java
org.sesy.coco.datacollector.AlarmService.java
org.sesy.coco.datacollector.AppLauncher.java
org.sesy.coco.datacollector.AudioProc.java
org.sesy.coco.datacollector.AudioWorker.java
org.sesy.coco.datacollector.BindActivity.java
org.sesy.coco.datacollector.BluetoothWorker.java
org.sesy.coco.datacollector.CellWorker.java
org.sesy.coco.datacollector.Constants.java
org.sesy.coco.datacollector.DaemonService.java
org.sesy.coco.datacollector.DataMonitor.java
org.sesy.coco.datacollector.GpsWorker.java
org.sesy.coco.datacollector.HelpActivity.java
org.sesy.coco.datacollector.MainActivity.java
org.sesy.coco.datacollector.MyPreference.java
org.sesy.coco.datacollector.MyWidgetProvider.java
org.sesy.coco.datacollector.PluginManager.java
org.sesy.coco.datacollector.PrefManager.java
org.sesy.coco.datacollector.ReportErrActivity.java
org.sesy.coco.datacollector.SDSetupActivity.java
org.sesy.coco.datacollector.SensorActivity.java
org.sesy.coco.datacollector.SensorListener.java
org.sesy.coco.datacollector.SensordroneWorker.java
org.sesy.coco.datacollector.SettingActivity.java
org.sesy.coco.datacollector.StatusActivity.java
org.sesy.coco.datacollector.StatusManager.java
org.sesy.coco.datacollector.TriggerService.java
org.sesy.coco.datacollector.UpdateWidgetService.java
org.sesy.coco.datacollector.WifiWorker.java
org.sesy.coco.datacollector.WorkerService.java
org.sesy.coco.datacollector.audio.Convolution.java
org.sesy.coco.datacollector.audio.CrossCorrelation.java
org.sesy.coco.datacollector.audio.ExtAudioRecorder.java
org.sesy.coco.datacollector.audio.XCorrAndDistFromWav.java
org.sesy.coco.datacollector.communication.HttpFileUploader.java
org.sesy.coco.datacollector.database.Entry.java
org.sesy.coco.datacollector.file.FileHelper.java
org.sesy.coco.datacollector.log.ConfigureLog4J.java
org.sesy.coco.datacollector.net.NetInfo.java
org.sesy.coco.datacollector.plugin.PlugInterface.java
wei.mark.standout.StandOutWindow.java
wei.mark.standout.Utils.java
wei.mark.standout.WindowCache.java
wei.mark.standout.constants.StandOutFlags.java
wei.mark.standout.ui.TouchInfo.java
wei.mark.standout.ui.Window.java