【问题标题】:Life span of a battery电池的寿命
【发布时间】:2012-02-02 14:09:46
【问题描述】:

有没有办法或如何获得或知道电池的寿命?我正在制作电池信息,就像在“Battery Doctor Saver Pro”中一样,不同之处在于我需要的寿命。我不知道该怎么做。谁能帮我这个?谢谢你的帮助。 :) 到目前为止,这是我的代码,没有我所说的“寿命”。

private BroadcastReceiver battery_receiver = new BroadcastReceiver() {

        @Override
        public void onReceive(Context context, Intent intent) {
            boolean isPresent = intent.getBooleanExtra("present", false);
            String technology = intent.getStringExtra("technology");
            int plugged = intent.getIntExtra("plugged", -1);
            int scale = intent.getIntExtra("scale", -1);
            int health = intent.getIntExtra("health", 0);
            int status = intent.getIntExtra("status", 0);
            int rawlevel = intent.getIntExtra("level", -1);
            int level = 0;

            Bundle bundle = intent.getExtras();

            Log.i("BatteryLevel", bundle.toString());

            if (isPresent) {
                if (rawlevel >= 0 && scale > 0) {
                    level = (rawlevel * 100) / scale;
                }

                String info = "Battery Level: " + level + "%\n";

                info += ("Technology: " + technology + "\n");
                info += ("Plugged: " + getPlugTypeString(plugged) + "\n");
                info += ("Health: " + getHealthString(health) + "\n");
                info += ("Status: " + getStatusString(status) + "\n");

                setBatteryLevelText(info + "\n\n" + bundle.toString());
            } else {
                setBatteryLevelText("Battery not present!!!");
            }
        }
    };

    private String getPlugTypeString(int plugged) {
        String plugType = "Unknown";

        switch (plugged) {
        case BatteryManager.BATTERY_PLUGGED_AC:
            plugType = "AC";
            break;
        case BatteryManager.BATTERY_PLUGGED_USB:
            plugType = "USB";
            break;
        }

        return plugType;
    }

    private String getHealthString(int health) {
        String healthString = "Unknown";

        switch (health) {
        case BatteryManager.BATTERY_HEALTH_DEAD:
            healthString = "Dead";
            break;
        case BatteryManager.BATTERY_HEALTH_GOOD:
            healthString = "Good Condition";
            break;
        case BatteryManager.BATTERY_HEALTH_OVER_VOLTAGE:
            healthString = "Over Voltage";
            break;
        case BatteryManager.BATTERY_HEALTH_OVERHEAT:
            healthString = "Over Heat";
            break;
        case BatteryManager.BATTERY_HEALTH_UNSPECIFIED_FAILURE:
            healthString = "Failure";
            break;
        }

        return healthString;
    }

    private String getStatusString(int status) {
        String statusString = "Unknown";

        switch (status) {
        case BatteryManager.BATTERY_STATUS_CHARGING:
            statusString = "Charging";
            break;
        case BatteryManager.BATTERY_STATUS_DISCHARGING:
            statusString = "Discharging";
            break;
        case BatteryManager.BATTERY_STATUS_FULL:
            statusString = "Full";
            break;
        case BatteryManager.BATTERY_STATUS_NOT_CHARGING:
            statusString = "Not Charging";
            break;
        }

        return statusString;
    }

【问题讨论】:

    标签: java android battery


    【解决方案1】:

    不完全确定您要在这里做什么,要计算瓦特小时或安培小时,请查看此链接: http://www.powerstream.com/battery-capacity-calculations.htm 如果您想要您当前使用的电池剩余时间,您需要获取当前电池电量,然后知道它的耗尽速度,或者通过检查它在此之前耗尽的速度然后做出假设,或者通过知道你会消耗多少电流。

    如果您针对所使用的确切电池校准代码,将获得最佳结果

    (看起来我的答案被打败了;))

    【讨论】:

      【解决方案2】:

      正如我在Get the remaining battery time available from an Android phone 上所说,您需要获取当前的电池电量并估算出当前的电量消耗速度。这将取决于处理器负载、屏幕亮度、激活的无线电以及可能的其他因素。

      简短的回答,当然可以得到一个估计,但这并不容易,而且可能不是很准确

      【讨论】:

      • 不可能准确,因为您无法准确预测用户在接下来的几分钟/几小时内将如何使用他的手机。
      • 是的。尽管有可能随着时间的推移建立特定用户的配置文件以获得更好的估计(例如,如果设备在上午 9 点之间经常闲置 - 中午这可能会被考虑在内)。要么这样做,要么按照笔记本电脑电池指示器的方式进行,即基于电流消耗的时间。
      • 感谢@Jaloopa 的回答 :))
      • 感谢@Stephen 的帮助 :))
      • @Jaloopa 啊,先生?是否有关于如何制作电池充电动画的代码?我的意思是充电时,手机顶部的图标?感谢您的帮助:)
      猜你喜欢
      • 1970-01-01
      • 2011-06-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多