CtsBatterySavingTestCases: Skip on batteryless devices.
Bug: 126777005
Test: CtsBatterySavingTestCases on Chromebase skips the tests
Test: On normal phones they runs and passes
Change-Id: Iad68524a69920b222f0e67ff59bb95672e26f726
diff --git a/common/device-side/util-axt/src/com/android/compatibility/common/util/BatteryUtils.java b/common/device-side/util-axt/src/com/android/compatibility/common/util/BatteryUtils.java
index c8b5186..2e88e8a 100644
--- a/common/device-side/util-axt/src/com/android/compatibility/common/util/BatteryUtils.java
+++ b/common/device-side/util-axt/src/com/android/compatibility/common/util/BatteryUtils.java
@@ -18,6 +18,8 @@
import static com.android.compatibility.common.util.SettingsUtils.putGlobalSetting;
import static com.android.compatibility.common.util.TestUtils.waitUntil;
+import android.content.Intent;
+import android.content.IntentFilter;
import android.content.pm.PackageManager;
import android.os.BatteryManager;
import android.os.PowerManager;
@@ -109,6 +111,13 @@
/** @return true if the device supports battery saver. */
public static boolean isBatterySaverSupported() {
+ final Intent batteryInfo = InstrumentationRegistry.getContext().registerReceiver(
+ null, new IntentFilter(Intent.ACTION_BATTERY_CHANGED));
+ if (!batteryInfo.getBooleanExtra(BatteryManager.EXTRA_PRESENT, true)) {
+ // Devices without battery does not support battery saver.
+ return false;
+ }
+
final PackageManager pm = InstrumentationRegistry.getContext().getPackageManager();
return !pm.hasSystemFeature(PackageManager.FEATURE_WATCH);
}