如何在安卓系统中获取设备温度

6

我想从设备中获取温度,但我不知道该怎么做。请帮我写一个简单的方法,谢谢。


请参考以下问题:https://dev59.com/dmw05IYBdhLWcg3w3VeX - mudit
1个回答

14

您可以使用TYPE_AMBIENT_TEMPERATURE来获取电池或CPU温度。而TYPE_TEMPERATURE已经过时了。

可在文档中找到的修改后的代码如下:

import android.app.Activity;
import android.hardware.Sensor;
import android.hardware.SensorEvent;
import android.hardware.SensorEventListener;
import android.hardware.SensorManager;

public class TempSensorActivity extends Activity, implements SensorEventListener {
 private final SensorManager mSensorManager;
 private final Sensor mTempSensor;

 public TempSensorActivity() {
     mSensorManager = (SensorManager)getSystemService(SENSOR_SERVICE);
     mTempSensor = mSensorManager.getDefaultSensor(Sensor.TYPE_AMBIENT_TEMPERATURE);
 }

 protected void onResume() {
     super.onResume();
     mSensorManager.registerListener(this, mTempSensor, SensorManager.SENSOR_DELAY_NORMAL);
 }

 protected void onPause() {
     super.onPause();
     mSensorManager.unregisterListener(this);
 }

 public void onAccuracyChanged(Sensor sensor, int accuracy) {
 }

 public void onSensorChanged(SensorEvent event) {
 }
}

请查看传感器文档以了解更多信息。


这非常有帮助,但是这里有一个更完整的答案:https://dev59.com/jmfWa4cB1Zd3GeqPgFhx#29285300 - ban-geoengineering
2
为什么每个我测试的设备都会在调用 mSensorManager.getDefaultSensor(Sensor.TYPE_AMBIENT_TEMPERATURE) 时返回 null?其他应用程序在同一设备上显示温度。这是怎么可能的?例如,我使用三星S9,系统也返回null。 - Ponomarenko Oleh
有和 @PonomarenkoOleh 一样的 null 问题... 有人解决了这个问题吗? - Ayush Katuwal

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接