修复Android中的环境温度
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了修复Android中的环境温度相关的知识,希望对你有一定的参考价值。
我成功制作了一个应用程序来测量android Studio中的环境温度。但是下一步并不想起作用。重点是:-当我启动该应用程序时,温度应显示在1个textView中(到目前为止有效)。然后它应保持在该温度下,但会发生变化。我只想检查一下温度。-当我单击提交时,它将与第二个textView相同。
我在时间上成功完成了此操作,但是在温度条件下,它不起作用。我的第二个问题是,我做了很多研究,看起来温度总是以°c为单位。我可以更改此设置,以便以°F为单位的人可以通过这种方式获得它吗?
没有更改值的温度代码,并带有用于在textView2上获取温度的按钮:
public class MainActivity extends AppCompatActivity implements SensorEventListener {
private TextView textView, textView2;
private Button button;
private SensorManager sensorManager;
private Sensor tempSensor;
private Boolean isTemperatureSensorAvailable;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
textView = findViewById(R.id.textView);
textView2 = findViewById(R.id.textView2);
button = findViewById(R.id.button);
sensorManager = (SensorManager) getSystemService(Context.SENSOR_SERVICE);
if(sensorManager.getDefaultSensor(Sensor.TYPE_AMBIENT_TEMPERATURE) !=null) {
tempSensor = sensorManager.getDefaultSensor(Sensor.TYPE_AMBIENT_TEMPERATURE);
isTemperatureSensorAvailable = true;
}else{
textView.setText("Temperature Sensor is not available");
isTemperatureSensorAvailable = false;
}
}
@Override
public void onAccuracyChanged(Sensor sensor, int accuracy) {
}
@Override
protected void onResume(){
super.onResume();
if(isTemperatureSensorAvailable){
sensorManager.registerListener(this,tempSensor, SensorManager.SENSOR_DELAY_NORMAL);
}
}
button.setOnClickListener(new View.OnClickListener(){
@Override
public void onClick(View view){
textView2.setText(sensorManager);
}
});
@Override
protected void onPause(){
super.onPause();
if(isTemperatureSensorAvailable){
sensorManager.unregisterListener(this);
}
}
我希望有人可以帮助我朝更好的方向发展。
感谢您的帮助。
答案
在第一个代码中,有一个更改了传感器的区域,因此每次导致您的问题都会运行。在其中,创建所有API以获取一次温度,然后将其作为字符串插入到文本视图中。从°C到°F,您需要转换。我会手动执行此操作:
(X°C × 9/5) + 32 = result_°F
其中X是输入温度,结果是以°F为单位的输出。
以上是关于修复Android中的环境温度的主要内容,如果未能解决你的问题,请参考以下文章