资讯详情

Android 温度传感器返回当前的温度

1)温度传感器返回当前温度,单位为摄氏度(°C)。

2)具体代码如下

package com.example.androidapp;

import android.hardware.Sensor;

import android.hardware.SensorEvent;

import android.hardware.SensorEventListener;

import android.hardware.SensorManager;

import android.os.Bundle;

import android.app.Activity;

import android.view.Menu;

import android.view.View;

import android.widget.Button;

import android.widget.TextView;

public class MainActivity extends Activity {

private SensorManager mSensorManager=null;

private Sensor mSensor=null;

private TextView textView1=null;

private Button button1=null;

private Button button2=null;

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_main);

textView1=(TextView)findViewById(R.id.textView1);

/*获取系统服务(SENSOR_SERVICE)返回一个SensorManager对象*/

mSensorManager=(SensorManager)getSystemService(SENSOR_SERVICE);

/*通过SensorManager获取相应的(温度传感器)Sensor类型对象*/

mSensor=mSensorManager.getDefaultSensor(Sensor.TYPE_TEMPERATURE);

/*注册相应的SensorService*/

button1=(Button)findViewById(R.id.button1);

button1.setOnClickListener(new Button.OnClickListener() {

@Override

public void onClick(View arg0) {

mSensorManager.registerListener(mSensorEventListener, mSensor

, SensorManager.SENSOR_DELAY_NORMAL);

}

});

/* 销毁相应的SensorService

* 注意文档中提到的关键部分,即使是Activity当看不见时,传感器将继续工作

* 所以一定要关闭触发器,否则将消耗用户大量电量*/

button2=(Button)findViewById(R.id.button2);

button2.setOnClickListener(new Button.OnClickListener() {

@Override

public void onClick(View v) {

mSensorManager.unregisterListener(mSensorEventListener, mSensor);

}

});

}

/*声明一个SensorEventListener对象用于侦听Sensor并重载事件onSensorChanged方法*/

private final SensorEventListener mSensorEventListener=new SensorEventListener() {

@Override

public void onSensorChanged(SensorEvent event) {

if(event.sensor.getType()==Sensor.TYPE_TEMPERATURE){

/*温度传感器返回当前温度,单位为摄氏度(°C)。*/

float temperature=event.values[0];

textView1.setText(String.valueOf(temperature) "°C");

}

}

@Override

public void onAccuracyChanged(Sensor sensor, int accuracy) {

// TODO Auto-generated method stub

}

};

@Override

public boolean onCreateOptionsMenu(Menu menu) {

// Inflate the menu; this adds items to the action bar if it is present.

getMenuInflater().inflate(R.menu.main, menu);

return true;

}

}

标签: android传感器类型3os5015传感器

锐单商城拥有海量元器件数据手册IC替代型号,打造 电子元器件IC百科大全!

锐单商城 - 一站式电子元器件采购平台