如何显示传感器值



如何在android模拟器中检查是否存在加速度计、地磁罗盘等传感器类型。是否有默认的传感器存在于android模拟器中,或者我们需要将任何传感器模拟器连接到android模拟器。

import android.app.Activity;
import android.hardware.Sensor;
import android.hardware.SensorEvent;
import android.hardware.SensorEventListener;
import android.hardware.SensorManager;
import android.os.Bundle;
//import android.widget.LinearLayout;
//import android.util.Log;
import android.widget.TextView;
public class SujaproActivity extends Activity implements SensorEventListener {
SensorManager sensorManager ;
private Sensor accSensor;

private TextView outputX;
 private TextView outputY;
 private TextView outputZ;
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    sensorManager = (SensorManager) getSystemService(SENSOR_SERVICE);
     accSensor = sensorManager.getSensorList(
            Sensor.TYPE_ACCELEROMETER).get(0);
     outputX = (TextView) findViewById(R.id.textView1);


    outputY = (TextView) findViewById(R.id.textView2);
    outputZ = (TextView) findViewById(R.id.textView3);
    setContentView(R.layout.main);
}
protected void onResume() {
    super.onResume();
    sensorManager.registerListener(this,accSensor,SensorManager.SENSOR_DELAY_GAME);
   // sensorManager.registerListener(this, 
      /*sensorManager.getDefaultSensor(Sensor.TYPE_ORIENTATION), 
      SensorManager.SENSOR_DELAY_GAME);*/
}
protected void onStop() {
    super.onStop();
    sensorManager.unregisterListener(this);
    /*sensorManager.unregisterListener(this, 
       sensorManager.getDefaultSensor(Sensor.TYPE_ORIENTATION));*/
   }


public void onAccuracyChanged(Sensor sensor, int accuracy) {
    // TODO Auto-generated method stub
}
public void onSensorChanged(SensorEvent event) {


 if (event.sensor.getType() == Sensor.TYPE_ALL)
 {        
                 outputX.setText( "x:"+Float.toString(event.values[0]));               
                 outputY.setText("y:"+Float.toString(event.values[1]));
                 outputZ.setText("z:"+Float.toString(event.values[2]));

                // default:
              /*case Sensor.TYPE_ORIENTATION:
                  outputX2.setText("x:"+Float.toString(event.values[0]));
                  outputY2.setText("y:"+Float.toString(event.values[1]));
                  outputZ2.setText("z:"+Float.toString(event.values[2]));
                  break;*/
         }
    } 
}

此代码不显示传感器值。它只显示在main.xml中绘制的设计部分。给我显示传感器值的解决方案。

我有一个正在运行的应用程序,其代码与此非常相似。唯一真正的区别是我不做"if(event.sensor.getType((==sensor.TYPE_ALL("。我建议在onSensorChanged中放置一个日志或调试断点,看看它是否被调用。

最新更新