如何获得带小数的电池温度?实际上我可以用
来计算它int temp = intent.getIntExtra(BatteryManager.EXTRA_TEMPERATURE,0);
但是通过这种方式,结果将是例如36 °C
..我想要一些显示给我的东西36.4 °C
我该怎么办?
答案 0 :(得分:14)
谷歌说here:
额外的ACTION_BATTERY_CHANGED:整数包含当前的电池温度。
返回的值是一个int,例如,27.5 Degrees Celcius为“275”,因此精确到十分之一摄氏度。只需将其转换为浮点并除以10即可。
使用您的示例:
int temp = intent.getIntExtra(BatteryManager.EXTRA_TEMPERATURE,0);
float tempTwo = ((float) temp) / 10;
OR
float temp = ((float) intent.getIntExtra(BatteryManager.EXTRA_TEMPERATURE,0) / 10;
你不需要担心10作为一个int,因为只有一个操作数需要是一个浮点数,结果也是一个。
答案 1 :(得分:2)
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";
}
答案 2 :(得分:1)
这是我知道你可以获得电池温度的唯一方法,而且总是一个int。
根据文件:
public static final String EXTRA_TEMPERATURE
包含当前电池的ACTION_BATTERY_CHANGED:整数的额外内容 温度。
但你可以除以10.0f得到一位小数。
float ftemp = temp / 10.0f;