Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/185.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
android中计算电池电量的两种方法的区别是什么?_Android_Batterylevel - Fatal编程技术网

android中计算电池电量的两种方法的区别是什么?

android中计算电池电量的两种方法的区别是什么?,android,batterylevel,Android,Batterylevel,在我的应用程序中,我显示电池电量。。我通过以下方式获得电池电量: int level = battery.getIntExtra(BatteryManager.EXTRA_LEVEL, -1); 没关系,我可以看到百分比。。但在网上我发现了另一种方法: int level = battery.getIntExtra(BatteryManager.EXTRA_LEVEL, -1); int scale = battery.getIntExtra(BatteryManager.EXTRA_SCAL

在我的应用程序中,我显示电池电量。。我通过以下方式获得电池电量:

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;
有什么区别?为什么我要用刻度来划分等级?谢谢

根据,刻度是最大值:

公共静态最终字符串额外刻度

在API级别5中添加了额外的操作\u电池\u更改:整数 包含最大电池电量

常量值:“刻度”

目前的水平是:

公共静态最终字符串额外_级别

在API级别5中添加了额外的操作\u电池\u更改:整数字段 包含当前电池电量,从0到额外刻度

常量值:“级别”


所以基本上,第一个给你一个绝对数,第二个给你一个百分比。

好吧,你会得到不同的数字:)


刻度是包含最大电池电量的
整数。
因此,使用第二种方法可以得到剩余的百分比(因此称为
batterypt
)。第一次你得到的是你的电池电量的绝对值。它被定义为包含当前电池电量的
整数字段,从0到额外刻度。

在android源代码中,刻度被硬编码为100,因此基本相同,除非一些制造商选择将刻度更改为其他刻度。()