如何获得带小数的电池温度?其实我可以用
int temp = intent.getIntExtra(BatteryManager.EXTRA_TEMPERATURE,0);
但是通过这种方式,结果将是例如36 °C
..我想要一些东西告诉我我该36.4 °C
怎么做?
如何获得带小数的电池温度?其实我可以用
int temp = intent.getIntExtra(BatteryManager.EXTRA_TEMPERATURE,0);
但是通过这种方式,结果将是例如36 °C
..我想要一些东西告诉我我该36.4 °C
怎么做?
谷歌在这里说:
ACTION_BATTERY_CHANGED 的附加值:包含当前电池温度的整数。
返回值是一个 int,例如,27.5 摄氏度为 "275" ,因此它精确到十分之一摄氏度。只需将其转换为浮点数并除以 10。
使用您的示例:
int temp = intent.getIntExtra(BatteryManager.EXTRA_TEMPERATURE,0);
float tempTwo = ((float) temp) / 10;
或者
float temp = ((float) intent.getIntExtra(BatteryManager.EXTRA_TEMPERATURE,0) / 10;
您不必担心 10 作为 int,因为只有一个操作数需要是浮点数,结果也是一个。
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";
}
这是我知道您可以获取电池温度的唯一方法,并且始终是整数。
根据文档:
公共静态最终字符串EXTRA_TEMPERATURE
ACTION_BATTERY_CHANGED 的附加值:包含当前电池温度的整数。
但是你可以除以 10.0f 得到一位小数。
浮动 ftemp = temp/10.0f;