在我的应用程序中我显示电池电量..我以这种方式获得电池电量:
int level = battery.getIntExtra(BatteryManager.EXTRA_LEVEL, -1);
没关系,我可以看到百分比..但在线我找到了另一种方式:
int level = battery.getIntExtra(BatteryManager.EXTRA_LEVEL, -1);
int scale = battery.getIntExtra(BatteryManager.EXTRA_SCALE, -1);
float batteryPct = level / (float)scale;
有什么区别?为什么我会用水平划分水平?感谢
答案 0 :(得分:1)
根据Android docs,SCALE是最大值:
public static final String EXTRA_SCALE
在API级别5中添加额外的ACTION_BATTERY_CHANGED:整数 包含最大电池电量。
常数值:“比例”
LEVEL是当前级别:
public static final String EXTRA_LEVEL
在API级别5中添加额外的ACTION_BATTERY_CHANGED:整数字段 包含当前电池电量,从0到EXTRA_SCALE。
常数值:“等级”
所以基本上,第一个给你一个绝对数字,第二个给你一个百分比。
答案 1 :(得分:1)
嗯,你得到不同的数字:)
比例是integer containing the maximum battery level.
因此,使用第二种方法,您可以获得剩余的百分比(因此称为batteryPct
)。首先,你得到电池电量的绝对值。它被定义为integer field containing the current battery level, from 0 to EXTRA_SCALE.