Android · Foreground service
Why Busymate DevTools runs a special-use foreground service
Busymate DevTools captures your device's network traffic on-device. On Android that work runs inside a foreground service so the system never kills it mid-capture — and it is declared as FOREGROUND_SERVICE_SPECIAL_USE because network-debugging capture is not one of Android's predefined service categories. This page explains what the service does, why it needs the special-use type, and shows it running.
Back to the Android appA 32-second walkthrough: the capture notification appearing the moment capture starts, and staying for the whole session.
What the service does
Two capture modes, one persistent notification
The foreground service backs whichever capture mode you choose. In both, the service must stay alive for as long as capture is on — a killed service means dropped traffic and a broken debugging session.
VPN capture tunnel
In the default mode the app runs Android's VpnService to route this device's traffic through an on-device tunnel it can inspect. A VpnService must be owned by a foreground service, and it must not be torn down while you are capturing — so the service runs for the whole session and shows a persistent notification the platform requires.
PAC-mode liveness
In PAC mode the device points at its own proxy auto-config URL and routes traffic through your personal Busymate proxy instead of the VPN. The foreground service keeps the app alive and reachable so the proxy connection stays up and captured traffic keeps flowing to your dashboard.
Why the special-use type
Network-debugging capture has no predefined category
Android 14 requires every foreground service to declare a type from a fixed list — camera, location, media playback, data sync, and so on. On-device HTTPS-debugging capture fits none of them:
It is not dataSync
dataSync is for finite upload/download work. Capture is an open-ended, user-controlled inspection session with no fixed endpoint — it runs until you turn it off.
It is genuinely user-visible
The whole point is that you can see, at a glance, that capture is running. The persistent notification is a feature, not an annoyance — it is how you stay in control and stop capture whenever you want.
It is exactly what SPECIAL_USE is for
Google reserves FOREGROUND_SERVICE_SPECIAL_USE for legitimate long-running work that does not map to a predefined category, declared with a plain-language justification — which is precisely this case.
How it behaves
Starts immediately, stays for the session, never silently restarts
It starts immediately
The service starts the instant you turn capture on, and the notification appears with it — so there is never a window where traffic is being captured without a visible indicator. Android also requires a foreground service that owns a VPN to post its notification right away.
It runs for the whole capture session
Capture is a continuous session, so the service stays in the foreground until you stop it. Pausing or letting the system reclaim it would drop connections and lose the very traffic you are trying to inspect.
It does not auto-restart behind your back
If capture stops, the service stops — it is not sticky and does not silently relaunch itself. Capture only ever runs because you turned it on, and the notification is always present while it does.
For Google Play review: the video above shows the FOREGROUND_SERVICE_SPECIAL_USE notification appearing the moment capture is enabled and remaining for the full session. The direct video URL and this page URL may both be used in the Foreground service permissions declaration.