6

如何获得带小数的电池温度?其实我可以用

int temp = intent.getIntExtra(BatteryManager.EXTRA_TEMPERATURE,0);

但是通过这种方式,结果将是例如36 °C..我想要一些东西告诉我我该36.4 °C怎么做?

4

3 回答 3

18

谷歌在这里说:

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,因为只有一个操作数需要是浮点数,结果也是一个。

于 2013-08-22T14:52:02.987 回答
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";
    }
于 2014-04-08T23:38:07.770 回答
1

这是我知道您可以获取电池温度的唯一方法,并且始终是整数。

根据文档:

公共静态最终字符串EXTRA_TEMPERATURE

ACTION_BATTERY_CHANGED 的附加值:包含当前电池温度的整数。

但是你可以除以 10.0f 得到一位小数。

浮动 ftemp = temp/10.0f;

于 2013-08-22T14:52:26.400 回答