我正在尋找一些源代碼或示例代碼,詳細說明如何在Android中顯示加速度計的值。優選地,這些值將顯示x方向,y方向和z方向上的加速度。在Android中顯示加速度計值
我是一個Android noob,所以任何幫助非常感謝。
我正在尋找一些源代碼或示例代碼,詳細說明如何在Android中顯示加速度計的值。優選地,這些值將顯示x方向,y方向和z方向上的加速度。在Android中顯示加速度計值
我是一個Android noob,所以任何幫助非常感謝。
你有沒有在android樣本中檢出Accelerometer example?你總是可以嘗試這樣的事情(這是我從here了):
public class SensorActivity extends Activity implements SensorEventListener {
private final SensorManager mSensorManager;
private final Sensor mAccelerometer;
public SensorActivity() {
mSensorManager = (SensorManager)getSystemService(SENSOR_SERVICE);
mAccelerometer = mSensorManager.getDefaultSensor(Sensor.TYPE_ACCELEROMETER);
}
protected void onResume() {
super.onResume();
mSensorManager.registerListener(this, mAccelerometer, SensorManager.SENSOR_DELAY_NORMAL);
}
protected void onPause() {
super.onPause();
mSensorManager.unregisterListener(this);
}
public void onAccuracyChanged(Sensor sensor, int accuracy) {
}
public void onSensorChanged(SensorEvent event) {
//Right in here is where you put code to read the current sensor values and
//update any views you might have that are displaying the sensor information
//You'd get accelerometer values like this:
if (event.sensor.getType() != Sensor.TYPE_ACCELEROMETER)
return;
float mSensorX, mSensorY;
switch (mDisplay.getRotation()) {
case Surface.ROTATION_0:
mSensorX = event.values[0];
mSensorY = event.values[1];
break;
case Surface.ROTATION_90:
mSensorX = -event.values[1];
mSensorY = event.values[0];
break;
case Surface.ROTATION_180:
mSensorX = -event.values[0];
mSensorY = -event.values[1];
break;
case Surface.ROTATION_270:
mSensorX = event.values[1];
mSensorY = -event.values[0];
}
}
}
這裏是萬有引力另一個例子,這將返回重力的載體。請注意,你可以改變傳感器類型和採樣的速度,更多的細節here
SensorManager sensorManager = (SensorManager) getSystemService(Context.SENSOR_SERVICE);
Sensor sensor = sensorManager.getDefaultSensor(Sensor.TYPE_ACCELEROMETER);
sensorManager.registerListener(new SensorEventListener() {
@Override
public void onSensorChanged(SensorEvent event) {
float x = event.values[0];
float y = event.values[1];
float z = event.values[2];
double total = Math.sqrt(x * x + y * y + z * z);
}
@Override
public void onAccuracyChanged(Sensor sensor, int accuracy) {
}
}, sensor, SensorManager.SENSOR_DELAY_FASTEST);
這是一個很好的答案。爲我工作。謝謝。 –
的http://stackoverflow.com/questions/5180187/android-accelerometer的鏈接 –
一個已經過時的潛在完全相同的副本,另一個對於我想要做的事情來說太複雜了。 – Slicekick