UniBattery

Verified safeOpen sourceExclusive
—
No reviews reviews
73
downloads
8.0
android

AI summary

Home-screen widget and dashboard that shows battery levels for all paired Bluetooth devices in one place. Supports customizable widgets, persistent notification, and exact AirPods/Beats levels on Android 17+ via Apple's protocol. Open source under MIT license.

Generated by AI. May contain inaccuracies.

About this app

One widget for the battery level of all Bluetooth devices.

Headphones, mouse, keyboard, controller, watch: every one of them seems to want its own companion app just so the battery level can be seen. Or Bluetooth settings have to be dug through every time. UniBattery shows them all in one place, so a quick look at the home screen is enough.

Features

- Home-screen widget: all connected devices and their battery levels at a glance - Dashboard app: Material 3 Expressive UI with an icon per device type - Last known battery: when a device isn't connected, the app and the widgets show the level it had last time, so it is clear whether to charge it before connecting - Customisable widgets: background opacity (all the way to 0%), corner roundness, text size, wallpaper or fixed colours, and whether to show last known levels - Optional notification: a silent, persistent notification that keeps the levels current - AirPods and Beats (Android 17+): exact battery levels through Apple's own protocol - Minimal permissions: no location, no scanning, only access to devices that have already been paired

Requirements

- Android 8.0 (API 26) or newer - Bluetooth devices that actually report their battery level (most modern ones do)

Where battery levels come from

The app only shows a percentage when one of these sources actually reports one. Otherwise it says "Battery unavailable".

- Android's own per-device level (BluetoothDevice.getBatteryLevel(), hidden in the SDK but reachable). It covers HFP/AVRCP headsets, Apple accessory reports and, on Android 14+, the LE Battery Service. - The system BATTERY_LEVEL_CHANGED broadcast. - A direct GATT read of the standard Battery Service (0x180F) on connected LE devices, for example mice and keyboards on older Android versions. - AirPods and Beats: Apple's own accessory protocol (AAP, an L2CAP channel on PSM 0x1001), kept open while they're connected so they push exact levels. Written from tyalie/AAP-Protocol-Definition. Android only allows this channel without root on versions newer than 16 QPR3, and apps can only open it through a hidden constructor, so UniBattery uses HiddenApiBypass for that one class (as LibrePods does).

Devices that only report battery through their own proprietary protocol (some earbuds with a companion app) won't show up with a level.

Permissions

- BLUETOOTH_CONNECT (Android 12+) / BLUETOOTH (11 and lower): read paired devices and their battery level. No scan, no location. - POST_NOTIFICATIONS: only requested when the battery notification is turned on. - FOREGROUND_SERVICE_CONNECTED_DEVICE: the notification is a silent foreground service, so it stays current in the background. - RECEIVE_BOOT_COMPLETED: restarts the notification after a reboot if it was on.

License

MIT

What's new

v1.0.9Oct 5, 2026

New earbuds icon: the icon from 1.0.8 looked more like a wired headset. It is now a clear pair of earbuds, in the app, the widgets and the icon picker.

About this version

Version
1.0.9 (10)
Size
2.13 MB
Requires Android
8.0
Target SDK
26
Architecture
armeabi-v7a, x86, x86_64, arm64-v8a
Downloads
73
Updated
Oct 5, 2026
Package
com.unibattery

Similar apps

Ratings & reviews

—
0 ratings
  • 5
    0
  • 4
    0
  • 3
    0
  • 2
    0
  • 1
    0

Write a review

Tap a star to rate this app