gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-01 19:28:24 25 4
gpt4 key购买 nike

我正在尝试使用 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) {

}
}

最佳答案

传感器环境温度仅存在于 Galaxy S4 和 Note 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) {

}


}

关于java - 如何使用SensorManager获取环境空气温度?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59285607/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com