signed

QiShunwang

“诚信为本、客户至上”

Android中的传感器之---温度传感器

2020/8/20 14:44:55   来源:

有人觉得这个温度传感器没啥毛用,也确实,在实际开发过程当中很少有这个需求的,以至于有的手机直接撤销了这个传感器功能,这么说是不是也觉得温度甚至湿度传感器是个鸡肋,这些信息完全可以从网上得到这些数据,可能做天气预报的项目会用到这些小功能吧,这里记录一下,直接贴代码了,因为我的手机不支持温度传感器具体也没有测,但是我相信这段代码是没有问题的,毕竟参考的关完,哈

 

public class LightActivity extends AppCompatActivity implements SensorEventListener {
    private SensorManager sensorManager;
    private Sensor sensor;
    private TextView mTvLight;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_light);
        mTvLight=findViewById(R.id.tv_light);
        // 获取传感器管理者对象
        sensorManager = (SensorManager) getSystemService(Context.SENSOR_SERVICE);
        // 获取光线传感器对象
        sensor = sensorManager.getDefaultSensor(Sensor.TYPE_AMBIENT_TEMPERATURE);
    }
    @Override
    protected void onResume() {
        super.onResume();
        //添加监听器
        sensorManager.registerListener(this,sensor,SensorManager.SENSOR_DELAY_NORMAL);
    }

    @Override
    protected void onPause() {
        super.onPause();
        if (sensorManager != null) {
            //解除注册,不再接收任何传感器的更新。
            sensorManager.unregisterListener(this,sensor);
        }
    }

    @Override
    public void onSensorChanged(SensorEvent event) {
        if(event.sensor.getType()==Sensor.TYPE_AMBIENT_TEMPERATURE){
            float temperature=event.values[0];
            mTvLight.setText(String.valueOf(temperature)+"°C");
        }else {
            ToastUtils.showShort("不支持");
        }
    }

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

    }
}

更多手机传感器使用请看Android中的传感器(总)