Android Open Source - androidtool Sensor Service






From Project

Back to project page androidtool.

License

The source code is released under:

MIT License

If you think the Android project androidtool 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.chris.android.tool.sensor;
//  w  w  w  .jav a  2 s. c  om
import android.content.Context;
import android.hardware.Sensor;
import android.hardware.SensorEvent;
import android.hardware.SensorEventListener;
import android.hardware.SensorManager;

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

import java.util.Arrays;

public class SensorService {

    private static final Logger LOG = LoggerFactory.getLogger(SensorService.class);
    private final SensorManager sensorManager;
    private final SensorListener sensorListener;
    private final Sensor sensor;

    public SensorService(Context applicationContext, int sensorType) {
        sensorManager = (SensorManager) applicationContext.getSystemService(Context.SENSOR_SERVICE);
        sensor = sensorManager.getDefaultSensor(sensorType);
        sensorListener = new SensorListener();
    }

    public void onPause() {
        sensorManager.unregisterListener(sensorListener);
    }

    public void onResume() {
        sensorManager.registerListener(sensorListener, sensor, SensorManager.SENSOR_DELAY_UI);
    }

    public void listenForSensorUpdates(SensorServiceListener listener) {
        sensorListener.setDelegate(listener);
    }

    private class SensorListener implements SensorEventListener {
        private SensorServiceListener delegate;
        private int updateCount = 0;

        private void setDelegate(SensorServiceListener delegate) {
            this.delegate = delegate;
        }

        @Override
        public void onAccuracyChanged(Sensor sensor, int accuracy) {
            LOG.debug("Accuracy changed for sensor {}: {}", sensor.getName(), accuracy);
        }

        @Override
        public void onSensorChanged(SensorEvent event) {
            updateCount++;
            if(delegate != null) {
                delegate.sensorUpdated(updateCount, event.accuracy, event.timestamp, event.values);
            }
            LOG.debug("{}: {}", event.sensor.getName(), Arrays.toString(event.values));
        }
    }

    public Sensor getSensor() {
        return sensor;
    }

    public interface SensorServiceListener {
        void sensorUpdated(int updateCount, int accurracy, long timestamp,  float[] values);
    }
}




Java Source Code List

org.chris.android.tool.MainActivity.java
org.chris.android.tool.TorchHelper.java
org.chris.android.tool.gps.GpsActivity.java
org.chris.android.tool.gps.GpsStatusType.java
org.chris.android.tool.gps.SelectDestinationActivity.java
org.chris.android.tool.mobiledata.DataConnectionNetworkType.java
org.chris.android.tool.mobiledata.DataConnectionState.java
org.chris.android.tool.mobiledata.MobileDataHelper.java
org.chris.android.tool.nfc.NfcActivity.java
org.chris.android.tool.sensor.SensorDetailActivity.java
org.chris.android.tool.sensor.SensorListActivity.java
org.chris.android.tool.sensor.SensorService.java
org.chris.android.tool.sensor.SensorType.java
org.chris.android.tool.service.WifiService.java
org.chris.android.tool.service.WifiState.java