Thursday, 30 August 2012

Access temperature sensor, TYPE_TEMPERATURE and TYPE_AMBIENT_TEMPERATURE.

The temperature sensors (Sensor.TYPE_TEMPERATURE/Sensor.TYPE_AMBIENT_TEMPERATURE) are used to determine temperature of the phone, for internal hardware. They are not available on all device. (It's not available on my HTC One X and HTC Flyer!)

Sensor.TYPE_TEMPERATURE is deprecated, use Sensor.TYPE_AMBIENT_TEMPERATURE instead.

Example:

package com.example.androidsensor;

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.widget.TextView;

public class MainActivity extends Activity {

TextView textTEMPERATURE_available, textTEMPERATURE_reading;
TextView textAMBIENT_TEMPERATURE_available, textAMBIENT_TEMPERATURE_reading;

@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);

textTEMPERATURE_available
= (TextView)findViewById(R.id.TEMPERATURE_available);
textTEMPERATURE_reading
= (TextView)findViewById(R.id.TEMPERATURE_reading);
textAMBIENT_TEMPERATURE_available
= (TextView)findViewById(R.id.AMBIENT_TEMPERATURE_available);
textAMBIENT_TEMPERATURE_reading
= (TextView)findViewById(R.id.AMBIENT_TEMPERATURE_reading);

SensorManager mySensorManager = (SensorManager)getSystemService(SENSOR_SERVICE);

Sensor TemperatureSensor = mySensorManager.getDefaultSensor(Sensor.TYPE_TEMPERATURE);
if(TemperatureSensor != null){
textTEMPERATURE_available.setText("Sensor.TYPE_TEMPERATURE Available");
mySensorManager.registerListener(
TemperatureSensorListener,
TemperatureSensor,
SensorManager.SENSOR_DELAY_NORMAL);

}else{
textTEMPERATURE_available.setText("Sensor.TYPE_TEMPERATURE NOT Available");
}

Sensor AmbientTemperatureSensor
= mySensorManager.getDefaultSensor(Sensor.TYPE_AMBIENT_TEMPERATURE);
if(AmbientTemperatureSensor != null){
textAMBIENT_TEMPERATURE_available.setText("Sensor.TYPE_AMBIENT_TEMPERATURE Available");
mySensorManager.registerListener(
AmbientTemperatureSensorListener,
AmbientTemperatureSensor,
SensorManager.SENSOR_DELAY_NORMAL);
}else{
textAMBIENT_TEMPERATURE_available.setText("Sensor.TYPE_AMBIENT_TEMPERATURE NOT Available");
}
}

private final SensorEventListener TemperatureSensorListener
= new SensorEventListener(){

@Override
public void onAccuracyChanged(Sensor sensor, int accuracy) {
// TODO Auto-generated method stub

}

@Override
public void onSensorChanged(SensorEvent event) {
if(event.sensor.getType() == Sensor.TYPE_TEMPERATURE){
textTEMPERATURE_reading.setText("TEMPERATURE: " + event.values[0]);
}
}

};

private final SensorEventListener AmbientTemperatureSensorListener
= new SensorEventListener(){

@Override
public void onAccuracyChanged(Sensor sensor, int accuracy) {
// TODO Auto-generated method stub

}

@Override
public void onSensorChanged(SensorEvent event) {
if(event.sensor.getType() == Sensor.TYPE_AMBIENT_TEMPERATURE){
textAMBIENT_TEMPERATURE_reading.setText("AMBIENT TEMPERATURE: " + event.values[0]);
}
}

};

}


<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">

<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/hello_world"
tools:context=".MainActivity" />

<TextView
android:id="@+id/TEMPERATURE_available"
android:layout_width="fill_parent"
android:layout_height="wrap_content" />
<TextView
android:id="@+id/TEMPERATURE_reading"
android:layout_width="fill_parent"
android:layout_height="wrap_content" />
<TextView
android:id="@+id/AMBIENT_TEMPERATURE_available"
android:layout_width="fill_parent"
android:layout_height="wrap_content" />
<TextView
android:id="@+id/AMBIENT_TEMPERATURE_reading"
android:layout_width="fill_parent"
android:layout_height="wrap_content" />

</LinearLayout>


Related:
- Determine light level, Sensor.TYPE_LIGHT.

Borneo08

About Borneo08

Author Description here.. Nulla sagittis convallis. Curabitur consequat. Quisque metus enim, venenatis fermentum, mollis in, porta et, nibh. Duis vulputate elit in elit. Mauris dictum libero id justo.

Subscribe to this Blog via Email :

More links

Related Posts Plugin for WordPress, Blogger...