Device: Forerunner 970, firmware 18.32, SDK 9.2.0. No paired external sensors, Pulse Ox set to "during sleep".
Repro: one do-nothing watch app (blank screen, one-minute timer, logs battery every 5 minutes), built in variants that differ only in manifest permissions. Each was run worn for 1.5–3.3 hours with no input.
| Variant | Permissions | Battery use |
|---|---|---|
| PNONE | none | ≤ 0.6 %/h |
| PSENSOR | Sensor | 1.9–2.1 %/h |
| PALL | Sensor, SensorHistory, Background, Notifications | 2.25–2.7 %/h |
| PSQUIET | Sensor, plus enableSensorEvents(null), setEnabledSensors([]) and disableSensorType(SENSOR_ONBOARD_HEARTRATE / SENSOR_ONBOARD_PULSE_OXIMETRY) at launch |
1.8–2.1 %/h; both disableSensorType calls return false |
| (no app open, overnight) | — | 0.41 %/h |
PSENSOR never calls any Toybox.Sensor function. Declaring the permission is enough to add about 1.5 %/h for as long as the app is open. The watch's battery page puts all of it under "Sensors & Accessories".
Expected: the Sensor permission alone, with no listener registered and no sensor enabled, should cost nothing extra. Or setEnabledSensors([]) / disableSensorType should bring the cost back to the no-permission level.
Impact: alarm and sleep apps have to stay open overnight (there's no unattended launch), so users lose 12–16 % a night.
Possibly related: "Venu 2S battery drain with the Sensor permission" (2021), and reports of Sensor-handler drain on the FR x55/x65 lines.