| Crates.io | tauri-plugin-android-battery-optimization |
| lib.rs | tauri-plugin-android-battery-optimization |
| version | 0.1.4 |
| created_at | 2026-01-19 11:21:45.041731+00 |
| updated_at | 2026-01-19 16:41:25.473198+00 |
| description | Tauri plugin for managing Android battery optimization settings and requesting unrestricted background usage. |
| homepage | |
| repository | https://github.com/NeoHuncho/tauri-plugin-android-battery-optimization |
| max_upload_size | |
| id | 2054330 |
| size | 163,013 |
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:
cargo add tauri-plugin-android-battery-optimization
Install 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-api
src-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();
checkBatteryOptimizationStatus()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;
}
requestBatteryOptimizationExemption()Request exemption from battery optimization. Shows a system dialog asking the user to allow unrestricted background usage.
Returns: Promise<void>
openBatterySettings()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" />
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.