Obtener la temperatura de la batería en Android

¿Cómo obtengo la temperatura de la batería en Android?

http://developer.android.com/reference/android/os/BatteryManager.html

public static final String EXTRA_TEMPERATURE
Extra para ACTION_BATTERY_CHANGED: número entero que contiene la temperatura actual de la batería.

Prueba esto:

  private class mBatInfoReceiver extends BroadcastReceiver{ int temp = 0; float get_temp(){ return (float)(temp / 10); } @Override public void onReceive(Context arg0, Intent intent) { temp = intent.getIntExtra(BatteryManager.EXTRA_TEMPERATURE,0); } }; 

luego defina en sus declaraciones de variables:

 private mBatInfoReceiver myBatInfoReceiver; 

y en onCreate:

  @Override public void onCreate(Bundle b) { super.onCreate(b); setContentView(R.layout.activity_main); // ... // Add this myBatInfoReceiver = new mBatInfoReceiver(); this.registerReceiver(this.myBatInfoReceiver, new IntentFilter(Intent.ACTION_BATTERY_CHANGED)); } 

llamada posterior, por ejemplo, en un OnClickListener ()

 float temp = myBatInfoReceiver.get_temp(); String message = "Current " + BatteryManager.EXTRA_TEMPERATURE + " = " + temp + Character.toString ((char) 176) + " C"; 
  public static String batteryTemperature(Context context) { Intent intent = context.registerReceiver(null, new IntentFilter(Intent.ACTION_BATTERY_CHANGED)); float temp = ((float) intent.getIntExtra(BatteryManager.EXTRA_TEMPERATURE,0)) / 10; return String.valueOf(temp) + "*C"; } 

Intente leer la static int BatteryManager.EXTRA_TEMPERATURE

 TextView BatTemp; private BroadcastReceiver mBatInfoReceiver = new BroadcastReceiver(){ @Override public void onReceive(Context arg0, Intent intent) { // TODO Auto-generated method stub int temp = intent.getIntExtra(BatteryManager.EXTRA_TEMPERATURE,0); }; @Override public void onCreate(Bundle b) { super.onCreate(b); setContentView(R.layout.activity_main); BatTemp = (TextView) this.findViewById(R.id.textView8); this.registerReceiver(this.mBatInfoReceiver,new IntentFilter(Intent.ACTION_BATTERY_CHANGED)); } 

Puede obtener la temperatura de la CPU con esta función: Obtenga la temperatura de la CPU desde un dispositivo Android utilizando el comando sys/class/thermal/temp .

 public float getCpuTemp() { Process process; try { process = Runtime.getRuntime().exec("cat sys/class/thermal/thermal_zone0/temp"); process.waitFor(); BufferedReader reader = new BufferedReader(new InputStreamReader(process.getInputStream())); String line = reader.readLine(); float temp = Float.parseFloat(line) / 1000.0f; return temp; } catch (Exception e) { e.printStackTrace(); return 0.0f; } } 

En mi esencia para enviar solicitudes de extracción: https://gist.github.com/sajadabasi/7d76379e82d51efd0a24e5829c3ce572