我想在我的应用程序的Android手机中使用加速度计。 来自传感器的数据将与GPS点一起保存,因此仅在更新GPS点时才需要值。
如果我使用附加的代码,则值始终为零。 API等级8 权限:互联网,优越的地理位置 测试设备:Galaxy S(i9000),Nexus One
有什么建议吗?我被困在这一点上。
来自德国的问候, 帕斯卡
import android.app.Activity;
import android.hardware.Sensor;
import android.hardware.SensorEvent;
import android.hardware.SensorEventListener;
import android.hardware.SensorManager;
import android.os.Bundle;
public class AccelerometerService extends Activity{
AccelerometerData accelerometerData;
private SensorManager mSensorManager;
private float x,y,z;
private class AccelerometerData implements SensorEventListener{
public void onSensorChanged(SensorEvent event) {
x = event.values[0];
y = event.values[1];
z = event.values[2];
}
public void onAccuracyChanged(Sensor sensor, int accuracy) {}
}
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
mSensorManager = (SensorManager) getSystemService(SENSOR_SERVICE);
mSensorManager.registerListener(accelerometerData,
mSensorManager.getDefaultSensor(Sensor.TYPE_ACCELEROMETER),
SensorManager.SENSOR_DELAY_FASTEST);
}
@Override
protected void onResume() {
super.onResume();
}
@Override
protected void onStop() {
mSensorManager.unregisterListener(accelerometerData);
super.onStop();
}
public String getSensorString()
{
return ("X: " + x+"m/s, Y: "+ y +"m/s, Z: "+ z +"m/s" );
}
}
答案 0 :(得分:2)
您是否在任何时候为accelerometerData
分配了一个值?我希望它能够在onCreate
方法中分配。
您可能还需要考虑屏幕方向并过滤掉任何非加速度计事件(我不确定过滤是否绝对必要,但它位于Accelerometer Play SDK sample。