I think the best option is to "rethink" your process:
There are no official API to determine whether the user is 2G or 3G
3G is technically faster than 2G but in the practice there are a lot of cases where 3G is very, very slow (bad coverage, too much traffic, etc.)
I'm an heavy mobile internet user and it can happen I have a better 2G than 3G.
Take also into account 3G is fast in good conditions but it's not really designed to support high volumes of data (at operator side, and at device's battery side)...
That's why you should take the decision to download small or big file based on WiFi / non-WiFi.
Nevertheless, for the "small file", do not make it "too small", most people that will use your app on WWAN will probably have correct coverage.
(Based on my experience with quite good audience apps in France and Belgium)