Skip to content

features/battery ​

useBatteryOptimizationStatus() ​

ts
function useBatteryOptimizationStatus(): BatteryOptimizationStatus;

Hook that returns the current battery optimization status and updates when it changes (Android only).

Returns ​

BatteryOptimizationStatus

Current status, always 'unrestricted' on iOS


getBatteryOptimizationStatus() ​

ts
function getBatteryOptimizationStatus(): BatteryOptimizationStatus;

Get the current battery optimization status (Android only). Also fires onBatteryOptimizationStatusChanged if status changed since last call.

Returns ​

BatteryOptimizationStatus

Current status, always 'unrestricted' on iOS


onBatteryOptimizationStatusChanged ​

ts
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 ​

ts
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() ​

ts
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 ​

BatteryWarning

Example ​

tsx
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 ​

PropertyTypeDescription
pendingbooleanWhether a battery warning is pending
statusBatteryOptimizationStatusCurrent battery optimization status
dismiss() => voidDismiss the warning without changing settings
openSettings() => voidOpen system battery settings for this app

useBatteryWarningPending() ​

ts
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() ​

ts
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 ​

ts
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() ​

ts
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() ​

ts
function openBatterySettings(): void;

Open the system battery settings for this app (Android only). No-op on iOS.

Returns ​

void


BatteryOptimizationStatusChangedEvent ​

ts
type BatteryOptimizationStatusChangedEvent = object;

Event fired when battery optimization status changes.

Properties ​

status ​

ts
status: BatteryOptimizationStatus;

BatteryWarningPendingChangedEvent ​

ts
type BatteryWarningPendingChangedEvent = object;

Event fired when battery warning pending state changes.

Properties ​

pending ​

ts
pending: boolean;