BATTERY_PROPERTY_CURRENT_NOW是否有理由在 2 个不同的设备上返回截然不同的值



我正在两个不同的设备上测试BATTERY_PROPERTY_CURRENT_NOW功能。

首先,我有一个三星Galaxy S7(Android 7.0 API 24(和一个Nexus 6P(Android 8.1 API 27(。

当我在三星上运行BATTERY_PROPERTY_CURRENT_NOW时,我会得到大约 -300 的结果,这对我来说似乎是正确的。但是在 Nexus 上,我得到了从 -120000 到 400000 的任何内容。为什么会这么不对劲?

以下是完整的代码:

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    final BatteryManager bm = (BatteryManager) getApplicationContext().getSystemService(Context.BATTERY_SERVICE);
    int current = bm.getIntProperty(BatteryManager.BATTERY_PROPERTY_CURRENT_NOW);
    TextView textView = findViewById(R.id.textView);
    textView.setText(String.valueOf(current));
}

我不确定是不是因为Nexus是Android的最新版本?但欢迎任何建议。

我认为三星手机返回毫安。我的手机可以消耗的最大电流为 1.55 A。该函数返回一个介于 1400 - 1450 之间的整数,看起来大约以毫安为单位。它每 10 秒只更新一次该值。

最新更新