text1 = (TextView)findViewById(R.id.text1);//方向传感器 text2 = (TextView)findViewById(R.id.text2);//磁场传感器 text3 = (TextView)findViewById(R.id.text3);//温度传感器 text4 = (TextView)findViewById(R.id.text4);//光感传感器 text5 = (TextView)findViewById(R.id.text5);//压力传感器 mSensor = (SensorManager) getSystemService(SENSOR_SERVICE); //获取Sensor的服务对象 然后在onResume中注册需要开发的传感器监听,代码:
@Override
protected void onResume() {
super.onResume();
//注册方向
mSensor.registerListener(
this,
mSensor.getDefaultSensor(Sensor.TYPE_ORIENTATION),
SensorManager.SENSOR_DELAY_GAME
);
//注册磁场
mSensor.registerListener(
this,
mSensor.getDefaultSensor(Sensor.TYPE_MAGNETIC_FIELD),
SensorManager.SENSOR_DELAY_GAME
);
//注册温度
mSensor.registerListener(
this,
mSensor.getDefaultSensor(Sensor.TYPE_AMBIENT_TEMPERATURE),
SensorManager.SENSOR_DELAY_GAME
);
//注册光度
mSensor.registerListener(
this,
mSensor.getDefaultSensor(Sensor.TYPE_LIGHT),
SensorManager.SENSOR_DELAY_GAME
);
//注册压力
mSensor.registerListener(
this,
mSensor.getDefaultSensor(Sensor.TYPE_PRESSURE),
SensorManager.SENSOR_DELAY_GAME
);
监听时间的代码操作:
@Override
public void onSensorChanged(SensorEvent sensorEvent) {
float[] val = sensorEvent.values;
int SensorType = sensorEvent.sensor.getType();
StringBuilder sb = null;
switch (SensorType){
case Sensor.TYPE_ORIENTATION:
sb = new StringBuilder();
sb.append("方向传感器:\nz:");
sb.append(val[0]);
sb.append(" \nX:");
sb.append(val[1]);
sb.append(" \nY:");
sb.append(val[2]);
text1.setText(sb.toString());
break;
case Sensor.TYPE_MAGNETIC_FIELD:
sb = new StringBuilder();
sb.append("磁场传感器:\nX:");
sb.append(val[0]);
sb.append(" \nY:");
sb.append(val[1]);
sb.append(" \nZ:");
sb.append(val[2]);
text2.setText(sb.toString());
break;
case Sensor.TYPE_AMBIENT_TEMPERATURE:
sb = new StringBuilder();
sb.append("温度传感器:\n当前温度是:");
sb.append(val[0]);
text3.setText(sb.toString());
break;
case Sensor.TYPE_LIGHT:
sb = new StringBuilder();
sb.append("光感传感器:\n强度是:");
sb.append(val[0]);
text4.setText(sb.toString());
break;
case Sensor.TYPE_PRESSURE:
sb = new StringBuilder();
sb.append("压力传感器:\n当前压力是:");
sb.append(val[0]);
text5.setText(sb.toString());
break;
}
//Log.d(TAG,"onSensorChanged:"+SensorType);
}

