diff --git a/core/java/com/android/internal/os/BatteryStatsImpl.java b/core/java/com/android/internal/os/BatteryStatsImpl.java index a449e5f00919a..2da72df59e7fd 100644 --- a/core/java/com/android/internal/os/BatteryStatsImpl.java +++ b/core/java/com/android/internal/os/BatteryStatsImpl.java @@ -978,10 +978,13 @@ public final class BatteryStatsImpl extends BatteryStats { } else if (mBtHeadset != null) { return getCurrentBluetoothPingCount() - mBluetoothPingStart; } - return -1; + return 0; } public void setBtHeadset(BluetoothHeadset headset) { + if (headset != null && mBtHeadset == null && isOnBattery() && mBluetoothPingStart == -1) { + mBluetoothPingStart = getCurrentBluetoothPingCount(); + } mBtHeadset = headset; } diff --git a/services/java/com/android/server/am/BatteryStatsService.java b/services/java/com/android/server/am/BatteryStatsService.java index c834b34e35688..ed0d534587f68 100644 --- a/services/java/com/android/server/am/BatteryStatsService.java +++ b/services/java/com/android/server/am/BatteryStatsService.java @@ -260,6 +260,7 @@ public final class BatteryStatsService extends IBatteryStats.Stub { enforceCallingPermission(); synchronized (mStats) { mStats.noteBluetoothOnLocked(); + mStats.setBtHeadset(new android.bluetooth.BluetoothHeadset(mContext, null)); } }