如何获得带小数的电池温度?

时间:2013-08-22 14:40:16

标签: android android-intent battery temperature

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

来计算它
int temp = intent.getIntExtra(BatteryManager.EXTRA_TEMPERATURE,0);

但是通过这种方式,结果将是例如36 °C ..我想要一些显示给我的东西36.4 °C我该怎么办?

3 个答案:

答案 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;