Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/402.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何使用SensorManager获取环境空气温度?_Java_Android - Fatal编程技术网

Java 如何使用SensorManager获取环境空气温度?

Java 如何使用SensorManager获取环境空气温度?,java,android,Java,Android,我正在尝试使用Android中的SensorManager获取环境空气温度。在下面的代码中,我创建了一个按钮单击事件,对于每个按钮单击,我都希望在textview中获得环境空气温度。以下代码仅返回传感器信息。我应该包含哪些代码行来获取环境空气温度 public class MainActivity extends AppCompatActivity implements SensorEventListener { private SensorManager sensorManager; pri

我正在尝试使用Android中的SensorManager获取环境空气温度。在下面的代码中,我创建了一个按钮单击事件,对于每个按钮单击,我都希望在textview中获得环境空气温度。以下代码仅返回传感器信息。我应该包含哪些代码行来获取环境空气温度

public class MainActivity extends AppCompatActivity implements SensorEventListener {

private SensorManager sensorManager;
private float temperature;

//TextView txtT;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    //thermometer = (Thermometer) findViewById(R.id.thermometer);
    sensorManager = (SensorManager) getSystemService(Context.SENSOR_SERVICE);

    final TextView txtT = (TextView) findViewById(R.id.textTemp);

    Button getButton = (Button) findViewById(R.id.button_get);

    getButton.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {

            Sensor sensor = sensorManager.getDefaultSensor(Sensor.TYPE_AMBIENT_TEMPERATURE);
            txtT.setText(sensor.toString());

        }
    });
}


@Override
public void onSensorChanged(SensorEvent event) {

}

@Override
public void onAccuracyChanged(Sensor sensor, int accuracy) {

}
}

传感器环境温度仅存在于星系S4中,注3。我不知道有任何其他智能手机已经与此传感器发布。很可能你不会从这个传感器中得到任何值,除非你有我列出的一些手机。我们的设备有电池和CPU温度计,但它们的数据并不是用来作为环境温度计的数据

在onsensorchanged函数中接收传感器事件值。您无法注册传感器的侦听器,也无法从onsensorchanged函数检索数据

public class MainActivity extends AppCompatActivity implements SensorEventListener {

    private SensorManager sensorManager;
    private float temperature;

//TextView txtT;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        //thermometer = (Thermometer) findViewById(R.id.thermometer);
        sensorManager = (SensorManager) getSystemService(Context.SENSOR_SERVICE);

    //    final TextView txtT = (TextView) findViewById(R.id.textTemp);

//        Button getButton = (Button) findViewById(R.id.button_get);

  //      getButton.setOnClickListener(new View.OnClickListener() {
    //        @Override
      //      public void onClick(View v) {



        sensorManager.registerListener(this, sensorManager
                        .getDefaultSensor(Sensor.TYPE_AMBIENT_TEMPERATURE),
                SensorManager.SENSOR_DELAY_FASTEST);

        //      txtT.setText(sensor.toString());

          //  }
      //  });
    }


    @Override
    public void onSensorChanged(SensorEvent event) {
        temperature = event.values[0];
        System.out.println("Temperature " + temperature);

    }

    @Override
    public void onAccuracyChanged(Sensor sensor, int accuracy) {

    }


}

你是在问要使用什么API吗?我不确定您的问题到底在寻找什么。:在
onSensorChanged
中,
事件。值[0]
将包含以塞尔修斯为单位的温度。但是,必须注册传感器侦听器才能调用它。只需阅读链接的doc@GhostCat,是的