Skip to content

@capawesome-team/capacitor-android-battery-optimization

Capacitor plugin for Android to manage battery optimization settings, request exemptions, and enhance app performance under Doze and App Standby modes.

Newsletter

Stay up to date with the latest news and updates about the Capawesome, Capacitor, and Ionic ecosystem by subscribing to our Capawesome Newsletter.

Compatibility

Plugin Version Capacitor Version Status
8.x.x >=8.x.x Active support

Installation

You can use our AI-Assisted Setup to install the plugin. Add the Capawesome Skills to your AI tool using the following command:

npx skills add capawesome-team/skills

Then use the following prompt:

Use the `capacitor-plugins` skill from `capawesome-team/skills` to install the `@capawesome-team/capacitor-android-battery-optimization` plugin in my project.

If you prefer Manual Setup, install the plugin by running the following commands and follow the platform-specific instructions below:

npm install @capawesome-team/capacitor-android-battery-optimization
npx cap sync

Android

This API requires the following permissions be added to your AndroidManifest.xml before the application tag if you want to request direct exemption from Power Management features:

<uses-permission android:name="android.permission.REQUEST_IGNORE_BATTERY_OPTIMIZATIONS" />

⚠️ Attention: Google Play policies prohibit apps from requesting direct exemption from Power Management features in Android 6.0+ (Doze and App Standby) unless the core function of the app is adversely affected. Source

Configuration

No configuration required for this plugin.

Demo

A working example can be found here: robingenz/capacitor-plugin-demo

Android
Android Demo

Usage

import { Capacitor } from '@capacitor/core';
import { BatteryOptimization } from '@capawesome-team/capacitor-android-battery-optimization';

const isBatteryOptimizationEnabled = async () => {
  if (Capacitor.getPlatform() !== 'android') {
    return false;
  }
  const { enabled } = await BatteryOptimization.isBatteryOptimizationEnabled();
  return enabled;
};

const openBatteryOptimizationSettings = async () => {
  if (Capacitor.getPlatform() !== 'android') {
    return;
  }
  await BatteryOptimization.openBatteryOptimizationSettings();
};

const requestIgnoreBatteryOptimization = async () => {
  if (Capacitor.getPlatform() !== 'android') {
    return;
  }
  await BatteryOptimization.requestIgnoreBatteryOptimization();
};

API

isBatteryOptimizationEnabled()

isBatteryOptimizationEnabled() => Promise<IsBatteryOptimizationEnabledResult>

Returns whether or not battery optimization is enabled.

Only available on Android.

Returns: Promise<IsBatteryOptimizationEnabledResult>

Since: 0.0.1


openBatteryOptimizationSettings()

openBatteryOptimizationSettings() => Promise<void>

Opens the battery optimization settings page.

Only available on Android.

Since: 0.0.1


requestIgnoreBatteryOptimization()

requestIgnoreBatteryOptimization() => Promise<void>

Requests the battery optimization ignore permission. This method needs the REQUEST_IGNORE_BATTERY_OPTIMIZATIONS manifest permission. Use this method only if your app meets an acceptable use case (see Google Play Policy).

Only available on Android.

Since: 0.0.1


Interfaces

IsBatteryOptimizationEnabledResult

Prop Type Description Since
enabled boolean Whether or not battery optimization is enabled. 0.0.1

Changelog

See CHANGELOG.md.

License

See LICENSE.