Android Open Source - rfcx-guardian-android Device State Service






From Project

Back to project page rfcx-guardian-android.

License

The source code is released under:

Apache License

If you think the Android project rfcx-guardian-android 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.rfcx.guardian.service;
/*from w ww.j ava  2  s . co m*/
import java.util.Calendar;

import org.rfcx.guardian.RfcxGuardian;
import org.rfcx.guardian.database.DeviceStateDb;
import org.rfcx.guardian.device.CpuUsage;
import org.rfcx.guardian.device.DeviceState;



import android.app.Service;
import android.content.Intent;
import android.hardware.Sensor;
import android.hardware.SensorEvent;
import android.hardware.SensorEventListener;
import android.hardware.SensorManager;
import android.os.IBinder;
import android.util.Log;

public class DeviceStateService extends Service implements SensorEventListener {

  private static final String TAG = DeviceStateService.class.getSimpleName();
  
  private boolean runFlag = false;
  private DeviceStateSvc deviceStateSvc;

  private int recordingIncrement = 0;
  
  private SensorManager sensorManager;
//  Sensor accelSensor = null;
  Sensor lightSensor = null;
  
  RfcxGuardian app = null;
  
  @Override
  public IBinder onBind(Intent intent) {
    return null;
  }
  
  @Override
  public void onCreate() {
    super.onCreate();
    this.deviceStateSvc = new DeviceStateSvc();
    registerSensorListeners();
  }
  
  @Override
  public int onStartCommand(Intent intent, int flags, int startId) {
    super.onStartCommand(intent, flags, startId);
    if (app == null) { app = (RfcxGuardian) getApplication(); }
    if (app.verboseLog) Log.d(TAG, "Starting service: "+TAG);
    this.runFlag = true;
    ((RfcxGuardian) getApplication()).isRunning_DeviceState = true;
    this.deviceStateSvc.start();
    return START_STICKY;
  }
  
  @Override
  public void onDestroy() {
    super.onDestroy();
    this.runFlag = false;
    app.isRunning_DeviceState = false;
    this.deviceStateSvc.interrupt();
    this.deviceStateSvc = null;
    unRegisterSensorListeners();
  }
  
  
  private class DeviceStateSvc extends Thread {
    
    public DeviceStateSvc() {
      super("DeviceStateService-DeviceStateSvc");
    }
    
    @Override
    public void run() {
      DeviceStateService deviceStateService = DeviceStateService.this;
      if (app == null) { app = (RfcxGuardian) getApplication(); }
      while (deviceStateService.runFlag) {
        CpuUsage deviceCpuUsage = app.deviceCpuUsage;
        DeviceState deviceState = app.deviceState;
        DeviceStateDb deviceStateDb = app.deviceStateDb;
        try {
          deviceCpuUsage.updateCpuUsage();
          recordingIncrement++;
          if (recordingIncrement == CpuUsage.REPORTING_SAMPLE_COUNT) {
            deviceState.setBatteryState(app.getApplicationContext(), null);
            deviceStateDb.dbCpu.insert(deviceCpuUsage.getCpuUsageAvg());
            deviceStateDb.dbCpuClock.insert(deviceCpuUsage.getCpuClockAvg());
            deviceStateDb.dbBattery.insert(deviceState.getBatteryPercent());
            deviceStateDb.dbBatteryTemperature.insert(deviceState.getBatteryTemperature());
            recordingIncrement = 0;
            if (app.verboseLog) Log.d(TAG, "CPU: "+deviceCpuUsage.getCpuUsageAvg()+"% @"+deviceCpuUsage.getCpuClockAvg()+"MHz "+(Calendar.getInstance()).getTime().toGMTString());
          }
                      
          int delayMs = (int) Math.round(60000/deviceState.serviceSamplesPerMinute) - CpuUsage.SAMPLE_LENGTH_MS;
          Thread.sleep(delayMs);
        } catch (InterruptedException e) {
          deviceStateService.runFlag = false;
          app.isRunning_DeviceState = true;
        }
      }
      if (app.verboseLog) Log.d(TAG, "Stopping service: "+TAG);
    }    
  }

  
  // Sensor methods

  @Override
  public void onSensorChanged(SensorEvent event) {
    RfcxGuardian rfcxSource = (RfcxGuardian) getApplication();
    if (event.sensor.getType() == Sensor.TYPE_LIGHT) {
      if (event.values[0] >= 0) {
        rfcxSource.deviceState.setLightLevel(Math.round(event.values[0]));
        rfcxSource.deviceStateDb.dbLight.insert(rfcxSource.deviceState.getLightLevel());
//      } else if (event.sensor.getType() == Sensor.TYPE_ACCELEROMETER) {
//        return;
      }
      return;
    } else {
      return;
    }
  }
  
  
  @Override
  public void onAccuracyChanged(Sensor sensor, int accuracy) {
    // TODO Auto-generated method stub
  }
  
  private void registerSensorListeners() {
    this.sensorManager = (SensorManager) getSystemService(SENSOR_SERVICE);
//    if (this.sensorManager.getSensorList(Sensor.TYPE_ACCELEROMETER).size() != 0) {
//      accelSensor = sensorManager.getSensorList(Sensor.TYPE_ACCELEROMETER).get(0);
//      this.sensorManager.registerListener(this, accelSensor, SensorManager.SENSOR_DELAY_NORMAL);
//    }
    if (this.sensorManager.getSensorList(Sensor.TYPE_LIGHT).size() != 0) {
      lightSensor = sensorManager.getSensorList(Sensor.TYPE_LIGHT).get(0);
      this.sensorManager.registerListener(this, lightSensor, SensorManager.SENSOR_DELAY_NORMAL);
    }
  }
  
  private void unRegisterSensorListeners() {
//    if (accelSensor != null) {
//      this.sensorManager.unregisterListener(this, accelSensor);
//    }
    if (lightSensor != null) {
      this.sensorManager.unregisterListener(this, lightSensor);
    }
  }
  
  
}




Java Source Code List

net.sourceforge.javaFlacEncoder.ArrayRecycler.java
net.sourceforge.javaFlacEncoder.BlockEncodeRequest.java
net.sourceforge.javaFlacEncoder.BlockThreadManager.java
net.sourceforge.javaFlacEncoder.CRC16.java
net.sourceforge.javaFlacEncoder.CRC8.java
net.sourceforge.javaFlacEncoder.ChannelData.java
net.sourceforge.javaFlacEncoder.EncodedElement_32.java
net.sourceforge.javaFlacEncoder.EncodedElement.java
net.sourceforge.javaFlacEncoder.EncodingConfiguration.java
net.sourceforge.javaFlacEncoder.FLACEncoder.java
net.sourceforge.javaFlacEncoder.FLACFileOutputStream.java
net.sourceforge.javaFlacEncoder.FLACOutputStream.java
net.sourceforge.javaFlacEncoder.FLACStreamController.java
net.sourceforge.javaFlacEncoder.FLACStreamIdentifier.java
net.sourceforge.javaFlacEncoder.FLACStreamOutputStream.java
net.sourceforge.javaFlacEncoder.FLAC_ConsoleFileEncoder.java
net.sourceforge.javaFlacEncoder.FLAC_FileEncoder.java
net.sourceforge.javaFlacEncoder.FLAC_MD5.java
net.sourceforge.javaFlacEncoder.FrameHeader.java
net.sourceforge.javaFlacEncoder.FrameThread.java
net.sourceforge.javaFlacEncoder.Frame.java
net.sourceforge.javaFlacEncoder.LPC.java
net.sourceforge.javaFlacEncoder.MetadataBlockHeader.java
net.sourceforge.javaFlacEncoder.MetadataBlockStreamInfo.java
net.sourceforge.javaFlacEncoder.RiceEncoder.java
net.sourceforge.javaFlacEncoder.StreamConfiguration.java
net.sourceforge.javaFlacEncoder.Subframe_Constant.java
net.sourceforge.javaFlacEncoder.Subframe_Fixed.java
net.sourceforge.javaFlacEncoder.Subframe_LPC.java
net.sourceforge.javaFlacEncoder.Subframe_Verbatim.java
net.sourceforge.javaFlacEncoder.Subframe.java
net.sourceforge.javaFlacEncoder.UTF8Modified.java
org.rfcx.guardian.RfcxGuardianPrefs.java
org.rfcx.guardian.RfcxGuardian.java
org.rfcx.guardian.activity.MainActivity.java
org.rfcx.guardian.activity.PrefsActivity.java
org.rfcx.guardian.api.ApiCore.java
org.rfcx.guardian.audio.AudioCore.java
org.rfcx.guardian.database.AlertDb.java
org.rfcx.guardian.database.AudioDb.java
org.rfcx.guardian.database.DeviceStateDb.java
org.rfcx.guardian.database.SmsDb.java
org.rfcx.guardian.device.AirplaneMode.java
org.rfcx.guardian.device.CpuUsage.java
org.rfcx.guardian.device.DeviceState.java
org.rfcx.guardian.intentservice.ApiCheckInTriggerIntentService.java
org.rfcx.guardian.intentservice.AudioEncodeIntentService.java
org.rfcx.guardian.intentservice.ServiceMonitorIntentService.java
org.rfcx.guardian.receiver.AirplaneModeReceiver.java
org.rfcx.guardian.receiver.BootReceiver.java
org.rfcx.guardian.receiver.ConnectivityReceiver.java
org.rfcx.guardian.receiver.SmsReceiver.java
org.rfcx.guardian.service.ApiCheckInService.java
org.rfcx.guardian.service.AudioCaptureService.java
org.rfcx.guardian.service.CarrierCodeService.java
org.rfcx.guardian.service.DeviceStateService.java
org.rfcx.guardian.telecom.CarrierInteraction.java
org.rfcx.guardian.utility.DateTimeUtils.java
org.rfcx.guardian.utility.DeviceGuid.java
org.rfcx.guardian.utility.ExtAudioRecorderModified.java
org.rfcx.guardian.utility.FileUtils.java
org.rfcx.guardian.utility.HttpGet.java
org.rfcx.guardian.utility.HttpPostMultipart.java
org.rfcx.guardian.utility.TimeOfDay.java