修复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中的环境温度的主要内容,如果未能解决你的问题,请参考以下文章

无法修复片段 NullPointerException 中的地图片段

如何在android中测量环境温度

Android在滚动时修复了滚动视图中的背景图像

Android 应用程序片段不断崩溃

片段还是支持片段?

分享几个实用的代码片段(附代码例子)