features/battery
useBatteryOptimizationStatus()
function useBatteryOptimizationStatus(): BatteryOptimizationStatus;Hook that returns the current battery optimization status and updates when it changes (Android only).
Returns
Current status, always 'unrestricted' on iOS
getBatteryOptimizationStatus()
function getBatteryOptimizationStatus(): BatteryOptimizationStatus;Get the current battery optimization status (Android only). Also fires onBatteryOptimizationStatusChanged if status changed since last call.
Returns
Current status, always 'unrestricted' on iOS
onBatteryOptimizationStatusChanged
const onBatteryOptimizationStatusChanged: NativeUpdatedValue<BatteryOptimizationStatusChangedEvent>;Subscribes to battery optimization status changes (Android only). Fires when user returns from settings with a different status. Never fires on iOS.
BatteryOptimizationStatus
type BatteryOptimizationStatus = "unrestricted" | "optimized" | "restricted";Battery optimization status.
unrestricted: App can run freely in background. User explicitly allowed it.optimized: System may limit background work (Doze, App Standby). Default state.restricted: User or system severely limited background. Services blocked.
useBatteryWarning()
function useBatteryWarning(): BatteryWarning;Meta hook that bundles all battery warning state and actions (Android only). Use this for a complete battery warning UI implementation.
Returns
Example
function BatteryWarningBanner() {
const { pending, status, dismiss, openSettings } = useBatteryWarning()
if (!pending) return null
return (
<View>
<Text>Battery status: {status}</Text>
<Button onPress={openSettings} title="Fix" />
<Button onPress={dismiss} title="Dismiss" />
</View>
)
}BatteryWarning
Return type for useBatteryWarning hook.
Properties
| Property | Type | Description |
|---|---|---|
pending | boolean | Whether a battery warning is pending |
status | BatteryOptimizationStatus | Current battery optimization status |
dismiss | () => void | Dismiss the warning without changing settings |
openSettings | () => void | Open system battery settings for this app |
useBatteryWarningPending()
function useBatteryWarningPending(): boolean;Hook that returns whether a battery warning is pending and updates when it changes (Android only).
Returns
boolean
true if warning is pending, always false on iOS
getBatteryWarningPending()
function getBatteryWarningPending(): boolean;Check if a battery warning is pending (Android only). Returns true if a foreground service start was blocked and the user hasn't dismissed the warning or fixed their battery settings. Auto-clears when battery status becomes unrestricted.
Returns
boolean
true if warning is pending, always false on iOS
onBatteryWarningPendingChanged
const onBatteryWarningPendingChanged: NativeUpdatedValue<BatteryWarningPendingChangedEvent>;Subscribes to battery warning pending state changes (Android only). Fires when: failure occurs (true), dismissBatteryWarning() called (false), or status becomes unrestricted (false). Never fires on iOS.
dismissBatteryWarning()
function dismissBatteryWarning(): void;Dismiss the battery warning without fixing settings (Android only). Call this when the user chooses to ignore the warning. No-op on iOS.
Returns
void
openBatterySettings()
function openBatterySettings(): void;Open the system battery settings for this app (Android only). No-op on iOS.
Returns
void
BatteryOptimizationStatusChangedEvent
type BatteryOptimizationStatusChangedEvent = object;Event fired when battery optimization status changes.
Properties
status
status: BatteryOptimizationStatus;BatteryWarningPendingChangedEvent
type BatteryWarningPendingChangedEvent = object;Event fired when battery warning pending state changes.
Properties
pending
pending: boolean;