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.
4 comments:
Hi, here http://developer.android.com/guide/topics/sensors/sensors_overview.html sad that TYPE_AMBIENT_TEMPERATURE is used for the ambient room temperature and TYPE_TEMPERATURE is used for the temperature of the device, is it correct? Thanks.
Awesome! Very helpful, clear, and thorough, thank you!
No, this one for internal sensor only (if available)
Hi,
how can I change the temperature reading of the battery, my phone is not charging due to a low temperature, i replaced the charging port and the battery but still same error
Post a Comment