Mobile apps by TuneSoftware

Send an Android broadcast to a device using adb

How to trigger a BroadcastReceiver from the command line

This is another of those posts that’s really a reminder to myself about how to do something, something that I do so infrequently that I forget it in between times (a bit like my post on setting up Charles proxy). But hopefully others will find it useful too.

I was recently working on a project where we wanted to monitor how our users were managing the battery on their device – when they plugged it in to a charger, when they unplugged it, what type of charger (USB/AC/Wireless), and what the state of the battery was at all these events. (This was a controlled group of test users by the way, not the general public.)

This is fairly easy to do on Android, just set a
BroadcastReceiver for the
ACTION_POWER_CONNECTED and
ACTION_POWER_DISCONNECTED actions as described here on the Android developer site. Each time the broadcast was fired we saved the data to a SQLite database, and I’m your uncle.

But debugging it is not so simple. Set a breakpoint on the receiver, pull the USB cable out to fire the disconnected event, and…oh, wait, no breakpoint. There’s an easy way around this though – while the cable is still plugged in fire the event manually using adb: