¿Cómo obtener la temperatura de la batería con decimal?
¿Cómo puedo obtener la temperatura de la batería con decimal? En realidad puedo calcularlo con
int temp = intent.getIntExtra(BatteryManager.EXTRA_TEMPERATURE,0);
Pero de esta manera el resultado será por ejemplo 36 °C
Quiero algo que me muestre 36.4 °C
¿Cómo puedo hacer?
- ¿Cómo funciona la autenticación de WhatsApp?
- Actualización de lienzo? invalidar()?
- Android: desvanece la vista en y fuera
- ¿Estoy invalidando toda la pantalla en cada llamada?
- Android: solicitud Http GET no se puede conectar
- Copiar carpetas en / data / data a sdcard y viceversa
- ¿Cuánto esfuerzo debo poner en mi seguridad para Android en la facturación de aplicaciones?
- Android: Cómo grabar mp3 radio (audio) stream
- Liberar mapas de bits de android.view.GLES20DisplayList
- Cómo inhabilitar Doze para una aplicación?
- Creación de imágenes XHDPI, HDPI, MDPI, LDPI en Photoshop para Android
- Calcular la matriz de rotación utilizando el acelerómetro
- Java.lang.OutOfMemoryError en android.graphics.BitmapFactory.nativeDecodeAsset (Método nativo)
Google dice aquí :
Extra para ACTION_BATTERY_CHANGED: entero que contiene la temperatura actual de la batería.
El valor devuelto es un int que representa, por ejemplo, 27,5 grados Celcius como "275", por lo que es preciso a una décima de un centígrado. Basta con lanzar esto a un flotador y dividir por 10.
Usando su ejemplo:
int temp = intent.getIntExtra(BatteryManager.EXTRA_TEMPERATURE,0); float tempTwo = ((float) temp) / 10;
O
float temp = ((float) intent.getIntExtra(BatteryManager.EXTRA_TEMPERATURE,0) / 10;
No es necesario preocuparse por los 10 como int, ya que sólo un operando necesita ser un flotador para que el resultado sea uno también.
Esa es la única manera que sé que puede obtener la temperatura de la batería, y siempre es un int.
Según la documentación:
Public static final String EXTRA_TEMPERATURE
Extra para ACTION_BATTERY_CHANGED: entero que contiene la temperatura actual de la batería.
Pero se puede dividir por 10.0f para obtener un decimal.
Float ftemp = temp / 10.0f;
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"; }