Android Open Source - BleSensorTag Android Sensor Manager From Project Back to project page BleSensorTag .
License The source code is released under:
MIT License
If you think the Android project BleSensorTag 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 sample.ble.sensortag.fusion.sensors;
/ * f r o m w w w . j a v a 2 s . c o m * /
import android.content.Context;
import android.hardware.Sensor;
import android.hardware.SensorEvent;
import android.hardware.SensorEventListener;
import android.hardware.SensorManager;
import android.os.Handler;
import android.os.Looper;
public class AndroidSensorManager extends ISensorManager implements SensorEventListener {
private static final String TAG = AndroidSensorManager.class.getSimpleName();
private static final double SENSOR_FUSION_COEFF = -180f / Math.PI;
private final double [] fusedOrientation = new double [3];
private final SensorManager sensorManager;
private Handler processor = null;
public AndroidSensorManager(Context context) {
sensorManager = (SensorManager) context.getSystemService(Context.SENSOR_SERVICE);
}
@Override
public ISensor getSensor(int sensorType) {
final AndroidSensor result = new AndroidSensor(
sensorManager.getDefaultSensor(sensorType));
return result;
}
@Override
public void onSensorChanged(SensorEvent event) {
if (listener == null)
return ;
listener.onSensorChanged(event.sensor.getType(), event.values);
}
@Override
public void onAccuracyChanged(Sensor sensor, int accuracy) {
}
@Override
public void enable() {
if (processor != null)
return ;
final Thread processorThread = new Thread(TAG) {
public void run() {
Looper.prepare();
processor = new Handler();
android.os.Process.setThreadPriority(android.os.Process.THREAD_PRIORITY_BACKGROUND);
Looper.loop();
}
};
processorThread.start();
}
@Override
public void disable() {
sensorManager.unregisterListener(this );
if (processor != null) {
processor.getLooper().quit();
processor = null;
}
}
@Override
public void registerSensor(int sensorType) {
sensorManager.registerListener(this ,
sensorManager.getDefaultSensor(sensorType),
SensorManager.SENSOR_DELAY_FASTEST, processor);
}
@Override
public void unregisterSensor(int sensorType) {
sensorManager.registerListener(this ,
sensorManager.getDefaultSensor(sensorType),
SensorManager.SENSOR_DELAY_FASTEST, processor);
}
@Override
public double [] patchSensorFusion(float [] values) {
fusedOrientation[0] = values[1] * SENSOR_FUSION_COEFF;
fusedOrientation[1] = values[2] * SENSOR_FUSION_COEFF;
fusedOrientation[2] = values[0] * SENSOR_FUSION_COEFF;
return fusedOrientation;
}
}
Java Source Code List sample.ble.sensortag.BleSensorsRecordService.java sample.ble.sensortag.BleServiceBindingActivity.java sample.ble.sensortag.BleService.java sample.ble.sensortag.BluetoothStateReciever.java sample.ble.sensortag.DeviceScanActivity.java sample.ble.sensortag.DeviceServicesActivity.java sample.ble.sensortag.adapters.BleDevicesAdapter.java sample.ble.sensortag.adapters.TiServicesAdapter.java sample.ble.sensortag.ble.BleActionsReceiver.java sample.ble.sensortag.ble.BleDevicesScanner.java sample.ble.sensortag.ble.BleExecutorListener.java sample.ble.sensortag.ble.BleGattExecutor.java sample.ble.sensortag.ble.BleManager.java sample.ble.sensortag.ble.BleServiceListener.java sample.ble.sensortag.ble.BleUtils.java sample.ble.sensortag.config.AppConfig.java sample.ble.sensortag.dialogs.AppDialog.java sample.ble.sensortag.dialogs.EnableBluetoothDialog.java sample.ble.sensortag.dialogs.ErrorDialog.java sample.ble.sensortag.fusion.SensorFusionActivity.java sample.ble.sensortag.fusion.SensorFusionFragment.java sample.ble.sensortag.fusion.engine.SensorFusionEngine.java sample.ble.sensortag.fusion.engine.SensorFusionHelper.java sample.ble.sensortag.fusion.sensors.AndroidSensorManager.java sample.ble.sensortag.fusion.sensors.AndroidSensor.java sample.ble.sensortag.fusion.sensors.BleSensorManager.java sample.ble.sensortag.fusion.sensors.BleSensor.java sample.ble.sensortag.fusion.sensors.ISensorManager.java sample.ble.sensortag.fusion.sensors.ISensor.java sample.ble.sensortag.fusion.sensors.SensorManagerException.java sample.ble.sensortag.gl.GLSurfaceView.java sample.ble.sensortag.gl.GlFragment.java sample.ble.sensortag.gl.ModelLoader.java sample.ble.sensortag.gl.ModelRenderer.java sample.ble.sensortag.info.TiDeviceInfoSerivce.java sample.ble.sensortag.info.TiGapSerivce.java sample.ble.sensortag.info.TiGattSerivce.java sample.ble.sensortag.info.TiInfoService.java sample.ble.sensortag.info.TiInfoServices.java sample.ble.sensortag.sensor.TiAccelerometerSensor.java sample.ble.sensortag.sensor.TiGyroscopeSensor.java sample.ble.sensortag.sensor.TiHumiditySensor.java sample.ble.sensortag.sensor.TiKeysSensor.java sample.ble.sensortag.sensor.TiMagnetometerSensor.java sample.ble.sensortag.sensor.TiPeriodicalSensor.java sample.ble.sensortag.sensor.TiPressureSensor.java sample.ble.sensortag.sensor.TiRangeSensors.java sample.ble.sensortag.sensor.TiSensorUtils.java sample.ble.sensortag.sensor.TiSensor.java sample.ble.sensortag.sensor.TiSensors.java sample.ble.sensortag.sensor.TiTemperatureSensor.java sample.ble.sensortag.sensor.TiTestSensor.java