So I've switched to a tiered data plan. Is there a way to lock certain applications from using 3g/4g and instead only use connected wifi.

2 Answers 2


Assuming you've got Android 4.0 or higher, you can do the following:

  1. Go to Settings→Data Usage
  2. Activate the limit by marking the checkbox, and moving the red and orange bars for "Deactivation" and "Warning" (hint: you can set them imaginary high to not have any effect -- but they must be enabled)
  3. Now scroll the list below the graph and tap the apps you want to limit. At the end of their resp. pages, you'll find another checkbox to limit their background data -- mark it.

Limit data usage
Limiting data usage

Now those apps can no longer use mobile data without your consent: only actions you triggered yourself ("foreground data") will be performed by them, no sync in the background or other background activity.

(Almost) Independent of the Android version used, but available:

You can use a firewall app such as e.g. DroidWall - Android Firewall or its successor AFWall+ (Android Firewall) to explicitly permit/forbid apps to use either mobile data or WiFi or both. Whitelists (forbid all except...) or blacklists (permit all but...) are possible.

DroidWall AFWall+
DroidWall and AFWall+ (source: Google Play; click images for larger variant)


Worth a try: NoRoot Firewall. Not sure if and how this works without root -- but it's free, so nothing to lose :)

NoRoot Firewall
NoRoot Firewall (source: Google Play; click image to enlarge)

  • Does Data Usage distinguish between wifi and 3G/4g? That is I don't mind using a lot of wifi but I want to be careful of data bills.
    – Rick
    May 9, 2013 at 21:45
  • 1
    Exactly that's what it does: it only cares about mobile data. Check the text below the graph in the first screenshot: Your carrier's data usage accounting may differ. -> the carrier has nothing to do with WiFi, only with mobile data. Also, the checkbox is described as Set mobile data limit, not WiFi. So WiFi is not affected by this at all.
    – Izzy
    May 9, 2013 at 21:51

If you have root enabled, you also could install AFWall+.

It allows you to add custom iptables rules per app for each outbound connectivity.

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .