当我使用Sensor.TYPE_ACCELEROMETER它工作正常并给我加速度值但是当我使用type_linear_acceleration时,它甚至没有在列表中找到(参见代码)。
这是我的 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-我的设备上没有陀螺仪。
答案 0 :(得分:2)
重力传感器,线性加速度传感器和旋转矢量传感器在Android 4.0中进行了更新,现在使用了设备的陀螺仪。 https://developer.android.com/guide/topics/sensors/sensors_motion.html