[ Package conformance ]

Expo SDK · >=9.0.0

expo-battery

package-local wrapper registers only the ExpoBattery native module; upstream expo-battery JS runs unchanged with iOS-simulator values.
90%
API coverage
ExpoBatterySmokeCase PeachExpoBatterySmokeCase iOS
← iOS|Peach →
expo-batteryExpo Battery Smokeexpo-battery seam smoke proof — boots upstream JS, calls every public API through the native seam, and renders a single static label `battery:ready:ok` once the no-battery defaults check out (level=-1, BatteryState.UNKNOWN, lowPowerMode=false). first visual-proof entry for expo-battery: validates the seam wires through without crashing the bundle.
Diff0.14%
DeviceiPhone 16
OracleiOS
CapturedMay 13, 2026
iOSPeachDiff
Working (5)
upstream isAvailableAsync/getBatteryLevelAsync/getBatteryStateAsync/isLowPowerModeEnabledAsync/isBatteryOptimizationEnabledAsync/getPowerStateAsync/hooks run unchanged; requireNativeModule("ExpoBattery") provides isSupported=false-1 battery levelUNKNOWN statelowPowerMode=falselistener subscriptions; upstream JS handles the iOS-missing isBatteryOptimizationEnabledAsync method
Missing (1)
real battery telemetry and change events are unavailable in the browser worker; mirrors iOS simulator unavailability rather than physical-device state