Android Open Source - SensorsWebLogger Template Sensor






From Project

Back to project page SensorsWebLogger.

License

The source code is released under:

GNU General Public License

If you think the Android project SensorsWebLogger 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.kost.android.sensorsweblogger;
/*w  w w .j a  v a2  s  .  co m*/
import android.app.Service;
import android.content.Context;
import android.content.Intent;
import android.content.SharedPreferences;
import android.hardware.Sensor;
import android.hardware.SensorEvent;
import android.hardware.SensorEventListener;
import android.hardware.SensorManager;
import android.location.Location;
import android.os.AsyncTask;
import android.os.IBinder;

import java.util.HashMap;

public class TemplateSensor extends Service implements SensorEventListener {
    private static final String DEBUG_TAG = "SensorLoggerService";
    private static final int SENSOR_DELAY = SensorManager.SENSOR_DELAY_NORMAL;

    private SensorManager sensorManager = null;
    private Sensor sensorSingle = null;
    protected int sensorType = Sensor.TYPE_PRESSURE;

    @Override
    public int onStartCommand(Intent intent, int flags, int startId) {
        sensorManager = (SensorManager) getSystemService(SENSOR_SERVICE);

        sensorSingle = sensorManager.getDefaultSensor(sensorType);
        if (sensorSingle!=null) {
            sensorManager.registerListener(this, sensorSingle, SENSOR_DELAY);
        } else {
        }

        return START_STICKY;
    }

    @Override
    public void onAccuracyChanged(Sensor sensor, int accuracy) {
        // do nothing
    }

    @Override
    public void onSensorChanged(SensorEvent event) {
        long timestamp = event.timestamp;
        float value = event.values[0];
        new SensorEventLoggerTask().execute(event);

        sensorManager.unregisterListener(this);
        stopSelf();
    }

    private class SensorEventLoggerTask extends
            AsyncTask<SensorEvent, Void, Void> {

        @Override
        protected Void doInBackground(SensorEvent... events) {
            SensorEvent event = events[0];
            long timestamp = event.timestamp;
            float value = event.values[0];
            String sensorName=event.sensor.getName();
            String lat;
            String lon;

            HashMap parms = new HashMap();

            // Log.i("MySVC","timestamp: "+String.valueOf(timestamp)+" Sensor: "+sensorName+" Value: "+String.valueOf(value));

            // SharedPreferences sharedPrefs = PreferenceManager.getDefaultSharedPreferences(this);
            SharedPreferences sharedPrefs = getSharedPreferences(getApplicationContext().getPackageName() + "_preferences", Context.MODE_PRIVATE);
            String device_name = sharedPrefs.getString("pref_device_name","MyDevice");
            String url = sharedPrefs.getString("pref_url","http://127.0.0.1/");

            // Location
            BestLastLocation LocationProv = new BestLastLocation();
            Location CurLocation = LocationProv.getBestLocation(getApplicationContext());
            if (CurLocation != null) {
                lat=String.valueOf(CurLocation.getLatitude());
                lon=String.valueOf(CurLocation.getLongitude());
            } else {
                lat="na";
                lon="na";
            }

            parms.put("device",device_name);
            parms.put("sensor",sensorName);
            parms.put("value",value);
            parms.put("timestamp",String.valueOf(timestamp));
            parms.put("lat",lat);
            parms.put("lon",lon);

            SendSensorData c=new SendSensorData();
            c.SendData(url,parms);

            return (null);
        }
    }

    @Override
    public void onDestroy() {
        sensorManager.unregisterListener(this);
    }

    @Override
    public IBinder onBind(Intent intent) {
        // TODO: Return the communication channel to the service.
        throw new UnsupportedOperationException("Not yet implemented");
    }
}




Java Source Code List

org.kost.android.sensorsweblogger.ApplicationTest.java
org.kost.android.sensorsweblogger.BestLastLocation.java
org.kost.android.sensorsweblogger.HandleSensors.java
org.kost.android.sensorsweblogger.MainActivity.java
org.kost.android.sensorsweblogger.MainService.java
org.kost.android.sensorsweblogger.MyReceiver.java
org.kost.android.sensorsweblogger.SendSensorData.java
org.kost.android.sensorsweblogger.SensorAmbientTemperature.java
org.kost.android.sensorsweblogger.SensorLight.java
org.kost.android.sensorsweblogger.SensorPressure.java
org.kost.android.sensorsweblogger.SensorRelativeHumidity.java
org.kost.android.sensorsweblogger.SettingsActivity.java
org.kost.android.sensorsweblogger.TemplateSensor.java