ChargeCue is a simple Android utility app that warns when a phone is plugged into external power but Android reports that it is not actually charging.
Default spoken alert:
Please turn on the charging switch.
- Kotlin
- Single Android app module
- Jetpack Compose + Material 3
- Coroutines + StateFlow
- DataStore Preferences
- Foreground service with
specialUseforeground service type
No Hilt, Room, WorkManager, network code, analytics, or ads.
- Open this folder in Android Studio.
- Let Android Studio sync Gradle.
- Select a device running Android 8.0 or newer.
- Run the
appconfiguration. - On Android 13 or newer, allow notification permission when prompted.
Android Studio can use its bundled Gradle installation if no Gradle wrapper is generated yet.
- Open ChargeCue. Monitoring is off by default.
- Tap Test alert and confirm the phrase is spoken.
- Turn monitoring on and leave the phone unplugged. No alert should play.
- Plug into a charger that Android reports as charging. No alert should play.
- Plug into external power while Android reports plugged but not charging. After the grace delay, ChargeCue should speak the alert phrase.
- Start charging before the grace delay ends. The pending alert should be cancelled.
- Let the battery reach full. ChargeCue should not alert when Android reports
BATTERY_STATUS_FULL. - While plugged but not charging, send repeated duplicate power or charging broadcasts. With repeat reminders off, ChargeCue should still alert only once for that plug session.
- Enable repeat reminders and confirm alerts repeat until charging starts or the phone is unplugged.
ChargeCue can only react to the battery state Android reports. Some phones and chargers report a wall-switch-off charger as simply not plugged in, rather than plugged but not charging. On those devices, ChargeCue cannot distinguish that wall-switch state.