8

私はAndroidのpowerprofileを試しました....私はこのコードを試しました...しかし、すべてのデバイスで毎回1000の答えが得られます...Androidでバッテリー容量を取得する他の方法はありますか...例.ifモバイル デバイスの容量は 2000mAh で、2000 が返されます。

public Double getBatteryCapacity() {

        Object mPowerProfile_ = null;
        double batteryCapacity = 0;
        final String POWER_PROFILE_CLASS = "com.android.internal.os.PowerProfile";
        try {
            mPowerProfile_ = Class.forName(POWER_PROFILE_CLASS)
                    .getConstructor(Context.class).newInstance(this);

        } catch (Exception e) {

            // Class not found?
            e.printStackTrace();
        }

        try {

            // Invoke PowerProfile method "getAveragePower" with param
            // "battery.capacity"
            batteryCapacity = (Double) Class.forName(POWER_PROFILE_CLASS)
                    .getMethod("getAveragePower", java.lang.String.class)
                    .invoke(mPowerProfile_, "battery.capacity");

        } catch (Exception e) {

            // Something went wrong
            e.printStackTrace();
        }

        return batteryCapacity;
    }
4

2 に答える 2

1

android.os.BatteryManager の以下のプロパティを使用できます。BATTERY_PROPERTY_CHARGE_COUNTER マイクロアンペア時間でバッテリー残量を示します。BATTERY_PROPERTY_CAPACITY は、残りのバッテリー容量を整数のパーセンテージで示します。

そう、

BATTERY_PROPERTY_CHARGE_COUNTER / BATTERY_PROPERTY_CAPACITY * 100

総バッテリー容量がわかります。これは正確な計算ではありませんが、実際の容量を閉じることができます。

参照: https://source.android.com/devices/tech/power/index.html#device-power http://developer.android.com/reference/android/os/BatteryManager.html

于 2015-05-04T09:06:33.110 に答える