0
當我使用Sensor.TYPE_ACCELEROMETER時,它的工作正常並給出了加速度值,但是當我使用type_linear_acceleration時,它甚至在列表中找不到(請參閱代碼)。Type_linear_acceleration傳感器不工作,但TYPE_ACCELEROMETER正在工作
這裏是我的 MainActivity.java
public class MainActivity extends AppCompatActivity {
SensorManager sm = null;
TextView textView1 = null;
List list;
SensorEventListener sel = new SensorEventListener(){
public void onAccuracyChanged(Sensor sensor, int accuracy) {}
public void onSensorChanged(SensorEvent event) {
Log.i("tag","inside sensor listener");
textView1.setText("x:"+event.values[0]+"\ny:"+event.values[1]+"\nz:"+event.values[2]);
}
};
@Override
protected void onResume() {
super.onResume();
sm = (SensorManager)getSystemService(SENSOR_SERVICE);
list = sm.getSensorList(Sensor.TYPE_LINEAR_ACCELERATION);
//Log.i("tag",Sensor.TYPE_ACCELEROMETER);
if(list.size()>0){
sm.registerListener(sel,sm.getDefaultSensor(Sensor.TYPE_LINEAR_ACCELERATION) , SensorManager.SENSOR_DELAY_NORMAL);
Toast.makeText(getBaseContext(), "Accelerometer.", Toast.LENGTH_LONG).show();
}else{
Toast.makeText(getBaseContext(), "Error: No Accelerometer.", Toast.LENGTH_LONG).show();
}
}
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
textView1 = (TextView)findViewById(R.id.textView2);
}
@Override
protected void onStop() {
if(list.size()>0){
sm.unregisterListener(sel);
}
super.onStop();
}
}
的問題是它的顯示 「錯誤:沒有加速度」。可能的原因是什麼? P.s-我沒有設備上的陀螺儀。
謝謝...有什麼辦法可以用線性加速度傳感器計算垂直距離嗎? –
@RishabhJindal你在談論設備的垂直移動距離嗎? – Ivan
是在垂直運動。 –