private boolean isSensorEventBelongsToPluggedTypes(SensorEvent sensorEvent) { for (int sensorType : sensorTypes) { if (sensorEvent.sensor.getType() == sensorType) { return true; } } return false; } }
/** Adds a {@link Sensor} to the {@link SensorManager} */ public void addSensor(Sensor sensor) { sensorMap.put(sensor.getType(), sensor); }
private SensorManager mSensorManager; private SensorEventListener mSensorListener; //// mSensorManager = (SensorManager) this .getSystemService(Context.SENSOR_SERVICE); mSensorListener = new SensorEventListener() { @Override public void onAccuracyChanged(Sensor arg0, int arg1) { } @Override public void onSensorChanged(SensorEvent event) { Sensor sensor = event.sensor; if (sensor.getType() == Sensor.TYPE_ACCELEROMETER) { //TODO: get values }else if (sensor.getType() == Sensor.TYPE_ORIENTATION) { //TODO: get values } } } mSensorManager.registerListener(mSensorListener, mSensorManager.getDefaultSensor(Sensor.TYPE_ACCELEROMETER), SensorManager.SENSOR_DELAY_GAME); mSensorManager.registerListener(mSensorListener, mSensorManager.getDefaultSensor(Sensor.TYPE_ORIENTATION), SensorManager.SENSOR_DELAY_GAME);
@Override public void onSensorChanged (SensorEvent event) { if (event.sensor.getType() == Sensor.TYPE_ACCELEROMETER) { if (nativeOrientation == Orientation.Portrait) { System.arraycopy(event.values, 0, accelerometerValues, 0, accelerometerValues.length); if (event.sensor.getType() == Sensor.TYPE_MAGNETIC_FIELD) { System.arraycopy(event.values, 0, magneticFieldValues, 0, magneticFieldValues.length); if (event.sensor.getType() == Sensor.TYPE_GYROSCOPE) { if (nativeOrientation == Orientation.Portrait) { System.arraycopy(event.values, 0, gyroscopeValues, 0, gyroscopeValues.length); if (event.sensor.getType() == Sensor.TYPE_ROTATION_VECTOR) { if (nativeOrientation == Orientation.Portrait) { System.arraycopy(event.values, 0, rotationVectorValues, 0, rotationVectorValues.length);
@Override public void onSensorChanged (SensorEvent event) { if (event.sensor.getType() == Sensor.TYPE_ACCELEROMETER) { if (nativeOrientation == Orientation.Portrait) { System.arraycopy(event.values, 0, accelerometerValues, 0, accelerometerValues.length); if (event.sensor.getType() == Sensor.TYPE_MAGNETIC_FIELD) { System.arraycopy(event.values, 0, magneticFieldValues, 0, magneticFieldValues.length); if (event.sensor.getType() == Sensor.TYPE_GYROSCOPE) { if (nativeOrientation == Orientation.Portrait) { System.arraycopy(event.values, 0, gyroscopeValues, 0, gyroscopeValues.length); if (event.sensor.getType() == Sensor.TYPE_ROTATION_VECTOR) { if (nativeOrientation == Orientation.Portrait) { System.arraycopy(event.values, 0, rotationVectorValues, 0, rotationVectorValues.length);
@TargetApi(Build.VERSION_CODES.KITKAT) private boolean isXYZ(Sensor s) { switch (s.getType()) { case Sensor.TYPE_ACCELEROMETER: case Sensor.TYPE_GRAVITY: case Sensor.TYPE_GYROSCOPE: case Sensor.TYPE_LINEAR_ACCELERATION: case Sensor.TYPE_MAGNETIC_FIELD: case Sensor.TYPE_ROTATION_VECTOR: return(true); } if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN_MR2) { if (s.getType() == Sensor.TYPE_GAME_ROTATION_VECTOR || s.getType() == Sensor.TYPE_GYROSCOPE_UNCALIBRATED || s.getType() == Sensor.TYPE_MAGNETIC_FIELD_UNCALIBRATED) { return(true); } } if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) { if (s.getType() == Sensor.TYPE_GEOMAGNETIC_ROTATION_VECTOR) { return(true); } } return(false); }
@TargetApi(Build.VERSION_CODES.KITKAT) private boolean isTriggerSensor(Sensor s) { int[] triggers= { Sensor.TYPE_SIGNIFICANT_MOTION, Sensor.TYPE_STEP_DETECTOR, Sensor.TYPE_STEP_COUNTER }; return(Arrays.binarySearch(triggers, s.getType()) >= 0); } }
private static Sensor testSensor(int type) { Sensor sensor = mock(Sensor.class); when(sensor.getType()).thenReturn(type); return sensor; } }
@Override public void onAccuracyChanged(Sensor sensor, int i) { int sensorType = sensor.getType(); SensorData sensorData = sensors.get(sensorType); if (sensorData != null) { logger.log(Level.FINE, "onAccuracyChanged for {0}: accuracy: {1}", new Object[]{sensor.getName(), i}); logger.log(Level.FINE, "MaxRange: {0}, Resolution: {1}", new Object[]{sensor.getMaximumRange(), sensor.getResolution()}); sensorData.sensorAccuracy = i; } }
@Override public void onTrigger(TriggerEvent event) { Log.i("BumpMonitor", "Sensor triggered"); //value[0] = 1.0 when the sensor triggers. 1.0 is the only allowed value. long curTime = System.currentTimeMillis(); // only allow one update every 100ms. if (event.sensor.getType() == Sensor.TYPE_SIGNIFICANT_MOTION) { if ((curTime - lastUpdate) > CHECK_INTERVAL) { lastUpdate = curTime; /* * Send Alert */ Message message = new Message(); message.what = EventTrigger.BUMP; try { if (serviceMessenger != null) { serviceMessenger.send(message); } } catch (RemoteException e) { // TODO Auto-generated catch block e.printStackTrace(); } } } //re-register the listener (it finishes after each event) boolean registered = sensorMgr.requestTriggerSensor(sensorListener, bumpSensor); Log.i("BumpMonitor", "Significant motion sensor re-registered: "+registered); } };
public void onSensorChanged(SensorEvent event) { long curTime = System.currentTimeMillis(); if (event.sensor.getType() == Sensor.TYPE_ACCELEROMETER) { if ((curTime - lastUpdate) > CHECK_INTERVAL) { long diffTime = (curTime - lastUpdate);
public SensorAssert hasType(@SensorType int type) { isNotNull(); int actualType = actual.getType(); //noinspection ResourceType assertThat(actualType) // .overridingErrorMessage("Expected type <%s> but was <%s>.", typeToString(type), typeToString(actualType)) // .isEqualTo(type); return this; }
if (event.sensor.getType() == Sensor.TYPE_PRESSURE) {
public void onSensorChanged(SensorEvent event) { long curTime = System.currentTimeMillis(); if (event.sensor.getType() == Sensor.TYPE_LIGHT) { if ((curTime - lastUpdate) > CHECK_INTERVAL) { long diffTime = (curTime - lastUpdate);
private void updateSensorValues(SensorEvent event) { if (event.sensor.getType() == Sensor.TYPE_ACCELEROMETER) { setAcclValues(event); } else if (event.sensor.getType() == Sensor.TYPE_MAGNETIC_FIELD) { setmagValues(event); } SensorManager.getRotationMatrix(rotation, null, grav, mag); SensorManager.getOrientation(rotation, orientation); double floatBearing = orientation[0]; floatBearing = Math.toDegrees(floatBearing); if (magField != null) floatBearing += magField.getDeclination(); if (floatBearing < 0) floatBearing += 360; setBearing(floatBearing); setRotationInDegrees(floatBearing); }
public void onSensorChanged(SensorEvent event) { long curTime = System.currentTimeMillis(); if (event.sensor.getType() == Sensor.TYPE_ACCELEROMETER) { if ((curTime - lastUpdate) > CHECK_INTERVAL) { long diffTime = (curTime - lastUpdate);
@Test public void getType() { Sensor sensor = ShadowSensor.newInstance(Sensor.TYPE_ACCELEROMETER); assertThat(sensor.getType()).isEqualTo(Sensor.TYPE_ACCELEROMETER); }
int sensorType = se.sensor.getType();
@Override public void onSensorChanged(SensorEvent sensorEvent) { synchronized (this) { if (sensorEvent.sensor.getType() == Sensor.TYPE_ACCELEROMETER) { if (sensorEvent.values[0] < 4 && sensorEvent.values[0] > -4) { if (sensorEvent.values[1] > 0) { // UP configurationProvider.setSensorPosition(Configuration.SENSOR_POSITION_UP); configurationProvider.setDegrees(configurationProvider.getDeviceDefaultOrientation() == Configuration.ORIENTATION_PORTRAIT ? 0 : 90); } else if (sensorEvent.values[1] < 0) { // UP SIDE DOWN configurationProvider.setSensorPosition(Configuration.SENSOR_POSITION_UP_SIDE_DOWN); configurationProvider.setDegrees(configurationProvider.getDeviceDefaultOrientation() == Configuration.ORIENTATION_PORTRAIT ? 180 : 270); } } else if (sensorEvent.values[1] < 4 && sensorEvent.values[1] > -4) { if (sensorEvent.values[0] > 0) { // LEFT configurationProvider.setSensorPosition(Configuration.SENSOR_POSITION_LEFT); configurationProvider.setDegrees(configurationProvider.getDeviceDefaultOrientation() == Configuration.ORIENTATION_PORTRAIT ? 90 : 180); } else if (sensorEvent.values[0] < 0) { // RIGHT configurationProvider.setSensorPosition(Configuration.SENSOR_POSITION_RIGHT); configurationProvider.setDegrees(configurationProvider.getDeviceDefaultOrientation() == Configuration.ORIENTATION_PORTRAIT ? 270 : 0); } } onScreenRotation(configurationProvider.getDegrees()); } } }