大家好,欢迎来到IT知识分享网。
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; } }
免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://haidsoft.com/154739.html