Get temperature of battery on android
http://developer.android.com/reference/android/os/BatteryManager.html
public static final String EXTRA_TEMPERATURE
Extra for ACTION_BATTERY_CHANGED: integer containing the current battery temperature.
Try this:
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); }};
then define in your Variable declarations:
private mBatInfoReceiver myBatInfoReceiver;
and in 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)); }
later call e.g in a 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"; }