android.hardware.Sensor#TYPE_ORIENTATION源码实例Demo

下面列出了android.hardware.Sensor#TYPE_ORIENTATION 实例代码,或者点击链接到github查看源代码,也可以在右侧发表评论。

源代码1 项目: WhereYouGo   文件: SensorMyLocationOverlay.java
@Override
public void onSensorChanged(SensorEvent event) {
    if (event.sensor.getType() == Sensor.TYPE_ORIENTATION) {
        boolean redraw = false;
        synchronized (this) {
            long timestamp = event.timestamp / 1000000;
            float azimuth = (event.values[0] + getRotationOffset() + 360) % 360;
            azimuth = filterValue(azimuth, this.currentCompassAzimuth);
            this.currentCompassAzimuth = azimuth;
            this.marker.setRotation(azimuth);
            if (Math.abs(timestamp - this.lastCompassTimestamp) >= UPDATE_INTERVAL
                    && Math.abs(azimuth - this.lastCompassAzimuth) >= UPDATE_AZIMUTH) {
                this.lastCompassTimestamp = timestamp;
                this.lastCompassAzimuth = azimuth;
                redraw = true;
            }
        }
        if (redraw)
            this.mapView.getOverlayController().redrawOverlays();
    }
}
 
源代码2 项目: Mobike   文件: MyOrientationListener.java
@Override
public void onSensorChanged(SensorEvent event) {
    if(event.sensor.getType()== Sensor.TYPE_ORIENTATION)
    {
        float x=event.values[SensorManager.DATA_X];
        if(Math.abs(x-lastX)>1.0)
        {
            if(mOnOrientationListener!=null)
            {
                mOnOrientationListener.onOrientationChanged(x);
            }
        }
        lastX=x;

    }

}
 
@SuppressWarnings("deprecation")
@Override
public void onSensorChanged(SensorEvent event) {//方向发生变化
	if(event.sensor.getType() == Sensor.TYPE_ORIENTATION){
		float x = event.values[SensorManager.DATA_X];
		
		if(Math.abs(x-lastX) > 1.0){
			if(mOnOrientationListener != null){
				mOnOrientationListener.onOrientationChanged(x);
			}
			
			
		}
		lastX = x;
	}
	

}
 
源代码4 项目: satstat   文件: GpsSectionFragment.java
/**
 * Called by {@link MainActivity} when a sensor's reading changes.
 * Rotates sky plot according to bearing.
 *
 * If {@code TYPE_ORIENTATION} data is available, preference is given to that value, which
 * appeared to be more accurate in tests. Otherwise orientation is obtained from the rotation
 * vector of the device, based on {@link TYPE_ACCELEROMETER} and {@code TYPE_MAGNETIC_FIELD}
 * sensor data.
 */
public void onSensorChanged(SensorEvent event) {
	switch (event.sensor.getType()) {
	case Sensor.TYPE_ACCELEROMETER:
		gravity = event.values.clone();
		break;
	case Sensor.TYPE_MAGNETIC_FIELD:
		geomagnetic = event.values.clone();
		break;
	case Sensor.TYPE_ORIENTATION:
		if (event.values[0] != 0) {
			hasOrientation = true;
			gpsStatusView.setYaw(event.values[0]);
		}
		break;
	}

	if ((gravity != null) && (geomagnetic != null) && !hasOrientation) {
		float[] ypr = new float[3];
		float[] r = new float[16];
		float[] i = new float[16];
		SensorManager.getRotationMatrix(r, i, gravity, geomagnetic);
		ypr = SensorManager.getOrientation(r, ypr);
		gpsStatusView.setYaw((float) Math.toDegrees(ypr[0]));
	}
}
 
源代码5 项目: TraceByAmap   文件: SensorEventHelper.java
@Override
public void onSensorChanged(SensorEvent event) {
	if (System.currentTimeMillis() - lastTime < TIME_SENSOR) {
		return;
	}
	switch (event.sensor.getType()) {
	case Sensor.TYPE_ORIENTATION: {
		float x = event.values[0];
		x += getScreenRotationOnPhone(mContext);
		x %= 360.0F;
		if (x > 180.0F)
			x -= 360.0F;
		else if (x < -180.0F)
			x += 360.0F;
		
		if (Math.abs(mAngle - x) < 3.0f) {
			break;
		}
		mAngle = Float.isNaN(x) ? 0 : x;
		if (mMarker != null) {
			mMarker.setRotateAngle(360-mAngle);
		}
		lastTime = System.currentTimeMillis();
	}
	}

}
 
源代码6 项目: BmapLite   文件: MyOrientationListener.java
@Override
public void onSensorChanged(SensorEvent event) {
    // 接受方向感应器的类型
    if (event.sensor.getType() == Sensor.TYPE_ORIENTATION) {
        // 这里我们可以得到数据,然后根据需要来处理
        float x = event.values[SensorManager.DATA_X];

        if (Math.abs(x - lastX) > 1.0) {
            onOrientationListener.onOrientationChanged(x);
        }
        lastX = x;

    }
}
 
源代码7 项目: BmapLite   文件: MyOrientationListener.java
@Override
public void onSensorChanged(SensorEvent event) {
    // 接受方向感应器的类型
    if (event.sensor.getType() == Sensor.TYPE_ORIENTATION) {
        // 这里我们可以得到数据,然后根据需要来处理
        float x = event.values[SensorManager.DATA_X];

        if (Math.abs(x - lastX) > 1.0) {
            onOrientationListener.onOrientationChanged(x);
        }
        lastX = x;

    }
}
 
源代码8 项目: MapView   文件: LocationLayerTestActivity.java
@Override
public void onSensorChanged(SensorEvent event) {
    if (mapView.isMapLoadFinish() && openSensor) {
        float mapDegree = 0; // the rotate between reality map to northern
        float degree = 0;
        if (event.sensor.getType() == Sensor.TYPE_ORIENTATION) {
            degree = event.values[0];
        }

        locationLayer.setCompassIndicatorCircleRotateDegree(-degree);
        locationLayer.setCompassIndicatorArrowRotateDegree(mapDegree + mapView
                .getCurrentRotateDegrees() + degree);
        mapView.refresh();
    }
}
 
源代码9 项目: Sensor-Disabler   文件: SensorUtil.java
public static boolean isDangerousSensor(Sensor sensor) {
    switch (sensor.getType()) {
        case Sensor.TYPE_LIGHT:
        case Sensor.TYPE_ACCELEROMETER:
        case Sensor.TYPE_ORIENTATION:
        case Sensor.TYPE_GYROSCOPE:
        case Sensor.TYPE_GYROSCOPE_UNCALIBRATED:
            return true;
        default:
            //Don't have a human string type? Safer to say that it's possibly dangerous.
            return getHumanStringType(sensor) == null;
    }
}
 
源代码10 项目: augmentedreality   文件: MainActivity.java
@Override
public void onSensorChanged(SensorEvent event) {

    if (event.sensor.getType() == Sensor.TYPE_ORIENTATION) {
        tv_head.setText(String.valueOf(event.values[0]));
        tv_pitch.setText(String.valueOf(event.values[1]));
        tv_roll.setText(String.valueOf(event.values[2]));
    } else if (event.sensor.getType() == Sensor.TYPE_ACCELEROMETER) {
        tv_x.setText(String.valueOf(event.values[0]));
        tv_y.setText(String.valueOf(event.values[1]));
        tv_z.setText(String.valueOf(event.values[2]));
    }
}
 
源代码11 项目: codeexamples-android   文件: Sensors.java
public void onSensorChanged(SensorEvent event) {
    //Log.d(TAG, "sensor: " + sensor + ", x: " + values[0] + ", y: " + values[1] + ", z: " + values[2]);
    synchronized (this) {
        if (mBitmap != null) {
            final Canvas canvas = mCanvas;
            final Paint paint = mPaint;
            if (event.sensor.getType() == Sensor.TYPE_ORIENTATION) {
                for (int i=0 ; i<3 ; i++) {
                    mOrientationValues[i] = event.values[i];
                }
            } else {
                float deltaX = mSpeed;
                float newX = mLastX + deltaX;

                int j = (event.sensor.getType() == Sensor.TYPE_MAGNETIC_FIELD) ? 1 : 0;
                for (int i=0 ; i<3 ; i++) {
                    int k = i+j*3;
                    final float v = mYOffset + event.values[i] * mScale[j];
                    paint.setColor(mColors[k]);
                    canvas.drawLine(mLastX, mLastValues[k], newX, v, paint);
                    mLastValues[k] = v;
                }
                if (event.sensor.getType() == Sensor.TYPE_MAGNETIC_FIELD)
                    mLastX += mSpeed;
            }
            invalidate();
        }
    }
}
 
源代码12 项目: jmonkeyengine   文件: AndroidSensorJoyInput.java
/**
 * Resumes the sensors.
 * Used to resume sensors when the activity comes to the top of the stack
 */
public void resumeSensors() {
    for (Entry entry: sensors) {
        if (entry.getKey() != Sensor.TYPE_ORIENTATION) {
            registerListener(entry.getKey());
        }
    }
}
 
@Override
public void onSensorChanged(final SensorEvent event)
{
    if (event.sensor.getType() == Sensor.TYPE_ORIENTATION) {
        if (event.values != null) {
            mAzimuth = event.values[0];
            if (mOrientationConsumer != null)
                mOrientationConsumer.onOrientationChanged(mAzimuth, this);
        }
    }
}
 
源代码14 项目: WhereYouGo   文件: Orientation.java
public void onSensorChanged(SensorEvent event) {
switch (event.sensor.getType()) {
  case Sensor.TYPE_MAGNETIC_FIELD:
    break;
  case Sensor.TYPE_ACCELEROMETER:
    float filter = getFilter();
    aboveOrBelow =
            (float) ((event.values[SensorManager.DATA_Z] * filter) + (aboveOrBelow * (1.0 - filter)));
    break;
  case Sensor.TYPE_ORIENTATION:
    float valueOr = event.values[SensorManager.DATA_X];
    // Logger.d(TAG, "sensorOrientation:" + valueOr + ", " + event.values[SensorManager.DATA_Y]
    // + ", " + event.values[SensorManager.DATA_Z] + ", " + getDeclination());
    // fix to true bearing
    if (Preferences.SENSOR_BEARING_TRUE) {
      valueOr += getDeclination();
    }
    orient = filterValue(valueOr, orient);
    pitch = filterValue(event.values[SensorManager.DATA_Y], pitch);

    roll = filterValue(event.values[SensorManager.DATA_Z], roll);
    float rollDef;
    if (aboveOrBelow < 0) {
      if (roll < 0) {
        rollDef = -180 - roll;
      } else {
        rollDef = 180 - roll;
      }
    } else {
      rollDef = roll;
    }
    this.mLastAziSensor = orient;

    // do some orientation change by settings
    int rotation = A.getMain().getWindowManager().getDefaultDisplay().getRotation();
    switch (rotation) {
      case Surface.ROTATION_0:
        // no need for change
        break;
      case Surface.ROTATION_90:
        mLastAziSensor += 90;
        break;
      case Surface.ROTATION_180:
        mLastAziSensor -= 180;
        break;
      case Surface.ROTATION_270:
        mLastAziSensor -= 90;
        break;
    }

    sendOrientation(pitch, rollDef);
    break;
}
}
 
源代码15 项目: PHONK   文件: POrientation.java
public POrientation(AppRunner appRunner) {
    super(appRunner);

    type = Sensor.TYPE_ORIENTATION;
}
 
源代码16 项目: edx-app-android   文件: OrientationDetector.java
@Override
public void onSensorChanged(SensorEvent event) {
    Sensor sensor = event.sensor;

    if ((sensor.getType() == Sensor.TYPE_ORIENTATION)) {

        float[] eventValues = event.values;

        // current orientation of the phone
        float xAxis = eventValues[1];
        float yAxis = eventValues[2];
        
        if ((yAxis <= 25) && (yAxis >= -25) && (xAxis >= -160)) {

            if (previousOrientation != PORTRAIT) {
                previousOrientation = PORTRAIT;

                // CHANGED TO PORTRAIT
                onPortrait();
                onChanged();
            }

        } else if ((yAxis < -25) && (xAxis >= -20)) {

            if (previousOrientation != LANDSCAPE_RIGHT) {
                previousOrientation = LANDSCAPE_RIGHT;

                // CHANGED TO LANDSCAPE RIGHT
                onLandscapeRight();
                if (previousOrientation != UNKNOWN) {
                    onChanged();
                }
            }

        } else if ((yAxis > 25) && (xAxis >= -20)) {

            if (previousOrientation != LANDSCAPE_LEFT) {
                previousOrientation = LANDSCAPE_LEFT;

                // CHANGED TO LANDSCAPE LEFT
                onLandscapeLeft();
                if (previousOrientation != UNKNOWN) {
                    onChanged();
                }
            }
        } else {
            logger.debug("Orientation values unhandled: " + eventValues);
        }
        
        onUpdate();
    }
}
 
源代码17 项目: XPrivacy   文件: XSensorManager.java
@SuppressWarnings("deprecation")
private boolean isRestricted(XParam param, int type) throws Throwable {
	if (type == Sensor.TYPE_ALL)
		return false;
	else if (type == Sensor.TYPE_ACCELEROMETER || type == Sensor.TYPE_LINEAR_ACCELERATION) {
		if (isRestricted(param, "acceleration"))
			return true;
	} else if (type == Sensor.TYPE_GRAVITY) {
		if (isRestricted(param, "gravity"))
			return true;
	} else if (type == Sensor.TYPE_RELATIVE_HUMIDITY) {
		if (isRestricted(param, "humidity"))
			return true;
	} else if (type == Sensor.TYPE_LIGHT) {
		if (isRestricted(param, "light"))
			return true;
	} else if (type == Sensor.TYPE_MAGNETIC_FIELD || type == Sensor.TYPE_MAGNETIC_FIELD_UNCALIBRATED) {
		if (isRestricted(param, "magnetic"))
			return true;
	} else if (type == Sensor.TYPE_SIGNIFICANT_MOTION) {
		if (isRestricted(param, "motion"))
			return true;
	} else if (type == Sensor.TYPE_ORIENTATION || type == Sensor.TYPE_GYROSCOPE
			|| type == Sensor.TYPE_GYROSCOPE_UNCALIBRATED) {
		if (isRestricted(param, "orientation"))
			return true;
	} else if (type == Sensor.TYPE_PRESSURE) {
		if (isRestricted(param, "pressure"))
			return true;
	} else if (type == Sensor.TYPE_PROXIMITY) {
		if (isRestricted(param, "proximity"))
			return true;
	} else if (type == Sensor.TYPE_GAME_ROTATION_VECTOR || type == Sensor.TYPE_GEOMAGNETIC_ROTATION_VECTOR
			|| type == Sensor.TYPE_ROTATION_VECTOR) {
		if (isRestricted(param, "rotation"))
			return true;
	} else if (type == Sensor.TYPE_TEMPERATURE || type == Sensor.TYPE_AMBIENT_TEMPERATURE) {
		if (isRestricted(param, "temperature"))
			return true;
	} else if (type == Sensor.TYPE_STEP_COUNTER || type == Sensor.TYPE_STEP_DETECTOR) {
		if (isRestricted(param, "step"))
			return true;
	} else if (type == Sensor.TYPE_HEART_RATE) {
		if (isRestricted(param, "heartrate"))
			return true;
	} else if (type == 22) {
		// 22 = TYPE_TILT_DETECTOR
		// Do nothing
	} else if (type == 23 || type == 24 || type == 25) {
		// 23 = TYPE_WAKE_GESTURE
		// 24 = TYPE_GLANCE_GESTURE
		// 25 = TYPE_PICK_UP_GESTURE
		// 23/24 This sensor is expected to only be used by the system ui
		// 25 Expected to be used internally for always on display
	} else
		Util.log(this, Log.WARN, "Unknown sensor type=" + type);
	return false;
}
 
源代码18 项目: satstat   文件: MainActivity.java
/**
   * Called when a sensor's reading changes. Updates sensor display and rotates sky plot according
   * to bearing.
   */
  public void onSensorChanged(SensorEvent event) {
//to enforce sensor rate
boolean isRateElapsed = false;

switch (event.sensor.getType()) {
	case Sensor.TYPE_ACCELEROMETER:
		isRateElapsed = (event.timestamp / 1000) - mAccLast >= iSensorRate;
		// if Z acceleration is greater than X/Y combined, lock rotation, else unlock
		if (Math.pow(event.values[2], 2) > Math.pow(event.values[0], 2) + Math.pow(event.values[1], 2)) {
			// workaround (SCREEN_ORIENTATION_LOCK is unsupported on API < 18)
			if (isWideScreen)
				setRequestedOrientation(OR_FROM_ROT_WIDE[this.getWindowManager().getDefaultDisplay().getRotation()]);
			else
				setRequestedOrientation(OR_FROM_ROT_TALL[this.getWindowManager().getDefaultDisplay().getRotation()]);
		} else {
			setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_UNSPECIFIED);
		}
		break;
	case Sensor.TYPE_ORIENTATION:
		isRateElapsed = (event.timestamp / 1000) - mOrLast >= iSensorRate;
		break;
	case Sensor.TYPE_GYROSCOPE:
		isRateElapsed = (event.timestamp / 1000) - mGyroLast >= iSensorRate;
		break;
	case Sensor.TYPE_MAGNETIC_FIELD:
		isRateElapsed = (event.timestamp / 1000) - mMagLast >= iSensorRate;
		break;
	case Sensor.TYPE_LIGHT:
		isRateElapsed = (event.timestamp / 1000) - mLightLast >= iSensorRate;
		break;
	case Sensor.TYPE_PROXIMITY:
		isRateElapsed = (event.timestamp / 1000) - mProximityLast >= iSensorRate;
		break;
	case Sensor.TYPE_PRESSURE:
		isRateElapsed = (event.timestamp / 1000) - mPressureLast >= iSensorRate;
		break;
	case Sensor.TYPE_RELATIVE_HUMIDITY:
		isRateElapsed = (event.timestamp / 1000) - mHumidityLast >= iSensorRate;
		break;
	case Sensor.TYPE_AMBIENT_TEMPERATURE:
		isRateElapsed = (event.timestamp / 1000) - mTempLast >= iSensorRate;
		break;
}

if (!isRateElapsed)
	return;

switch (event.sensor.getType()) {
case Sensor.TYPE_ACCELEROMETER:
	mAccLast = event.timestamp / 1000;
	break;
case Sensor.TYPE_ORIENTATION:
	mOrLast = event.timestamp / 1000;
	break;
case Sensor.TYPE_GYROSCOPE:
	mGyroLast = event.timestamp / 1000;
	break;
case Sensor.TYPE_MAGNETIC_FIELD:
	mMagLast = event.timestamp / 1000;
	break;
case Sensor.TYPE_LIGHT:
	mLightLast = event.timestamp / 1000;
	break;
case Sensor.TYPE_PROXIMITY:
	mProximityLast = event.timestamp / 1000;
	break;
case Sensor.TYPE_PRESSURE:
	mPressureLast = event.timestamp / 1000;
	break;
case Sensor.TYPE_RELATIVE_HUMIDITY:
	mHumidityLast = event.timestamp / 1000;
	break;
case Sensor.TYPE_AMBIENT_TEMPERATURE:
	mTempLast = event.timestamp / 1000;
	break;
}


if (sensorSectionFragment != null) {
	sensorSectionFragment.onSensorChanged(event);
  	}
if (gpsSectionFragment != null) {
	gpsSectionFragment.onSensorChanged(event);
}
  }
 
源代码19 项目: jmonkeyengine   文件: AndroidSensorJoyInput.java
public Joystick loadJoystick(int joyId, InputManager inputManager) {
        SensorData sensorData;
        AndroidSensorJoystickAxis axis;

        AndroidSensorJoystick joystick = new AndroidSensorJoystick(inputManager,
                                    joyInput,
                                    joyId,
                                    "AndroidSensorsJoystick");

        List<Sensor> availSensors = sensorManager.getSensorList(Sensor.TYPE_ALL);
        for (Sensor sensor: availSensors) {
            logger.log(Level.FINE, "{0} Sensor is available, Type: {1}, Vendor: {2}, Version: {3}",
                    new Object[]{sensor.getName(), sensor.getType(), sensor.getVendor(), sensor.getVersion()});
        }

        // manually create orientation sensor data since orientation is not a physical sensor
        sensorData = new SensorData(Sensor.TYPE_ORIENTATION, null);
        sensorData.lastValues = new float[3];
        sensors.put(Sensor.TYPE_ORIENTATION, sensorData);
        axis = joystick.addAxis(SensorJoystickAxis.ORIENTATION_X, SensorJoystickAxis.ORIENTATION_X, joystick.getAxisCount(), FastMath.HALF_PI);
        joystick.setYAxis(axis); // joystick y axis = rotation around device x axis
        sensorData.axes.add(axis);
        axis = joystick.addAxis(SensorJoystickAxis.ORIENTATION_Y, SensorJoystickAxis.ORIENTATION_Y, joystick.getAxisCount(), FastMath.HALF_PI);
        joystick.setXAxis(axis); // joystick x axis = rotation around device y axis
        sensorData.axes.add(axis);
        axis = joystick.addAxis(SensorJoystickAxis.ORIENTATION_Z, SensorJoystickAxis.ORIENTATION_Z, joystick.getAxisCount(), FastMath.HALF_PI);
        sensorData.axes.add(axis);

        // add axes for physical sensors
        sensorData = initSensor(Sensor.TYPE_MAGNETIC_FIELD);
        if (sensorData != null) {
            sensorData.lastValues = new float[3];
            sensors.put(Sensor.TYPE_MAGNETIC_FIELD, sensorData);
//            axis = joystick.addAxis(SensorJoystickAxis.MAGNETIC_X, "MagneticField_X", joystick.getAxisCount(), 1f);
//            sensorData.axes.add(axis);
//            axis = joystick.addAxis(SensorJoystickAxis.MAGNETIC_Y, "MagneticField_Y", joystick.getAxisCount(), 1f);
//            sensorData.axes.add(axis);
//            axis = joystick.addAxis(SensorJoystickAxis.MAGNETIC_Z, "MagneticField_Z", joystick.getAxisCount(), 1f);
//            sensorData.axes.add(axis);
        }

        sensorData = initSensor(Sensor.TYPE_ACCELEROMETER);
        if (sensorData != null) {
            sensorData.lastValues = new float[3];
            sensors.put(Sensor.TYPE_ACCELEROMETER, sensorData);
//            axis = joystick.addAxis(SensorJoystickAxis.ACCELEROMETER_X, "Accelerometer_X", joystick.getAxisCount(), 1f);
//            sensorData.axes.add(axis);
//            axis = joystick.addAxis(SensorJoystickAxis.ACCELEROMETER_Y, "Accelerometer_Y", joystick.getAxisCount(), 1f);
//            sensorData.axes.add(axis);
//            axis = joystick.addAxis(SensorJoystickAxis.ACCELEROMETER_Z, "Accelerometer_Z", joystick.getAxisCount(), 1f);
//            sensorData.axes.add(axis);
        }

//        sensorData = initSensor(Sensor.TYPE_GYROSCOPE);
//        if (sensorData != null) {
//            sensorData.lastValues = new float[3];
//        }
//
//        sensorData = initSensor(Sensor.TYPE_GRAVITY);
//        if (sensorData != null) {
//            sensorData.lastValues = new float[3];
//        }
//
//        sensorData = initSensor(Sensor.TYPE_LINEAR_ACCELERATION);
//        if (sensorData != null) {
//            sensorData.lastValues = new float[3];
//        }
//
//        sensorData = initSensor(Sensor.TYPE_ROTATION_VECTOR);
//        if (sensorData != null) {
//            sensorData.lastValues = new float[4];
//        }
//
//        sensorData = initSensor(Sensor.TYPE_PROXIMITY);
//        if (sensorData != null) {
//            sensorData.lastValues = new float[1];
//        }
//
//        sensorData = initSensor(Sensor.TYPE_LIGHT);
//        if (sensorData != null) {
//            sensorData.lastValues = new float[1];
//        }
//
//        sensorData = initSensor(Sensor.TYPE_PRESSURE);
//        if (sensorData != null) {
//            sensorData.lastValues = new float[1];
//        }
//
//        sensorData = initSensor(Sensor.TYPE_TEMPERATURE);
//        if (sensorData != null) {
//            sensorData.lastValues = new float[1];
//        }


        loaded = true;
        return joystick;
    }
 
源代码20 项目: satstat   文件: SensorSectionFragment.java
/**
 * Called by {@link MainActivity} when a sensor's reading changes. Updates sensor display.
 */
public void onSensorChanged(SensorEvent event) {
	switch (event.sensor.getType()) {
	case Sensor.TYPE_ACCELEROMETER:
		accX.setText(String.format("%." + mAccSensorRes + "f", event.values[0]));
		accY.setText(String.format("%." + mAccSensorRes + "f", event.values[1]));
		accZ.setText(String.format("%." + mAccSensorRes + "f", event.values[2]));
		accTotal.setText(String.format("%." + mAccSensorRes + "f", Math.sqrt(Math.pow(event.values[0], 2) + Math.pow(event.values[1], 2) + Math.pow(event.values[2], 2))));
		accStatus.setTextColor(getResources().getColor(accuracyToColor(event.accuracy)));
		break;
	case Sensor.TYPE_ORIENTATION:
		orAzimuth.setText(String.format("%.0f%s", event.values[0], getString(R.string.unit_degree)));
		orAziText.setText(MainActivity.formatOrientation(this.getContext(), event.values[0]));
		orPitch.setText(String.format("%.0f%s", event.values[1], getString(R.string.unit_degree)));
		orRoll.setText(String.format("%.0f%s", event.values[2], getString(R.string.unit_degree)));
		orStatus.setTextColor(getResources().getColor(accuracyToColor(event.accuracy)));
		break;
	case Sensor.TYPE_GYROSCOPE:
		rotX.setText(String.format("%." + mGyroSensorRes + "f", event.values[0]));
		rotY.setText(String.format("%." + mGyroSensorRes + "f", event.values[1]));
		rotZ.setText(String.format("%." + mGyroSensorRes + "f", event.values[2]));
		rotTotal.setText(String.format("%." + mGyroSensorRes + "f", Math.sqrt(Math.pow(event.values[0], 2) + Math.pow(event.values[1], 2) + Math.pow(event.values[2], 2))));
		rotStatus.setTextColor(getResources().getColor(accuracyToColor(event.accuracy)));
		break;
	case Sensor.TYPE_MAGNETIC_FIELD:
		magX.setText(String.format("%." + mMagSensorRes + "f", event.values[0]));
		magY.setText(String.format("%." + mMagSensorRes + "f", event.values[1]));
		magZ.setText(String.format("%." + mMagSensorRes + "f", event.values[2]));
		magTotal.setText(String.format("%." + mMagSensorRes + "f", Math.sqrt(Math.pow(event.values[0], 2) + Math.pow(event.values[1], 2) + Math.pow(event.values[2], 2))));
		magStatus.setTextColor(getResources().getColor(accuracyToColor(event.accuracy)));
		break;
	case Sensor.TYPE_LIGHT:
		light.setText(String.format("%." + mLightSensorRes + "f", event.values[0]));
		lightStatus.setTextColor(getResources().getColor(accuracyToColor(event.accuracy)));
		break;
	case Sensor.TYPE_PROXIMITY:
		proximity.setText(String.format("%." + mProximitySensorRes + "f", event.values[0]));
		proximityStatus.setTextColor(getResources().getColor(accuracyToColor(event.accuracy)));
		break;
	case Sensor.TYPE_PRESSURE:
		metPressure.setText(String.format("%." + mPressureSensorRes + "f", event.values[0]));
		pressureStatus.setTextColor(getResources().getColor(accuracyToColor(event.accuracy)));
		break;
	case Sensor.TYPE_RELATIVE_HUMIDITY:
		metHumid.setText(String.format("%." + mHumiditySensorRes + "f", event.values[0]));
		humidStatus.setTextColor(getResources().getColor(accuracyToColor(event.accuracy)));
		break;
	case Sensor.TYPE_AMBIENT_TEMPERATURE:
		metTemp.setText(String.format("%." + mTempSensorRes + "f", event.values[0]));
		tempStatus.setTextColor(getResources().getColor(accuracyToColor(event.accuracy)));
		break;
	}
}