This plugin only works on Tauri v2 for Android.
Tauri plugin for managing Android battery optimization settings. Request unrestricted background usage to ensure timely notifications and background task execution.
Android's Doze mode and battery optimization can delay background tasks and notifications. This plugin allows you to:
- Check if your app is subject to battery optimization
- Request exemption via the system dialog (unrestricted background usage- See image below)
cargo add tauri-plugin-android-battery-optimizationInstall using your preferred JavaScript package manager:
pnpm add tauri-plugin-android-battery-optimization-api
# or
npm install tauri-plugin-android-battery-optimization-api
# or
yarn add tauri-plugin-android-battery-optimization-apisrc-tauri/src/lib.rs
pub fn run() {
tauri::Builder::default()
.plugin(tauri_plugin_android_battery_optimization::init())
.run(tauri::generate_context!())
.expect("error while running tauri application");
}src-tauri/capabilities/default.json
{
"permissions": ["android-battery-optimization:default"]
}import {
checkBatteryOptimizationStatus,
requestBatteryOptimizationExemption,
openBatterySettings,
} from 'tauri-plugin-android-battery-optimization-api';
// Check if the app is subject to battery optimization
const status = await checkBatteryOptimizationStatus();
if (status.isOptimized) {
console.log('App is subject to battery optimization');
// Request exemption (shows system dialog)
await requestBatteryOptimizationExemption();
}
// Or open the battery settings page for manual configuration
await openBatterySettings();Check the current battery optimization status.
Returns: Promise<BatteryStatus>
interface BatteryStatus {
// true if the app is subject to battery optimization (Doze mode restrictions)
isOptimized: boolean;
// true if the app has unrestricted background access
isIgnoringOptimizations: boolean;
}Request exemption from battery optimization. Shows a system dialog asking the user to allow unrestricted background usage.
Returns: Promise<void>
Open the system battery optimization settings page. Allows users to manually configure battery optimization for all apps.
Returns: Promise<void>
The plugin automatically adds the required permission to your Android manifest:
<uses-permission android:name="android.permission.REQUEST_IGNORE_BATTERY_OPTIMIZATIONS" />- Minimum Android SDK: 21 (Android 5.0)
- Target Android SDK: 34 (Android 14)
- Tauri: v2
Note: Battery optimization (Doze mode) was introduced in Android 6.0 (API 23). On older versions,
isOptimizedwill always returnfalse.
Show a banner prompting users to enable unrestricted background usage for timely notifications:
import {
checkBatteryOptimizationStatus,
requestBatteryOptimizationExemption,
} from 'tauri-plugin-android-battery-optimization-api';
const status = await checkBatteryOptimizationStatus();
if (status.isOptimized) {
// Show a UI banner
showBanner({
message: 'Enable unrestricted background usage for timely notifications',
onPress: async () => {
await requestBatteryOptimizationExemption();
// Re-check status after user interaction
const newStatus = await checkBatteryOptimizationStatus();
if (!newStatus.isOptimized) {
hideBanner();
}
},
});
}MIT License - see LICENSE for details.