I need to know whether 3G connectivity is permitted on the device or not. I don't want to know what current network state is, because if you set "Network Mode" setting in "Mobile network settings" screen to "Automatic" network state could be either 2G or 3G. I just want to know which setting is selected there - 2G, 3G or Automatic (latter two mean the same for me).
Both telephonyManager.getNetworkType()
and ConnectivityManage.getNetworkInfo(ConnectivityManager.TYPE_MOBILE).getState()
are returning current network state, which can lead me in a wrong direction, because if current state is 2G it could mean that 3G is disabled or just that 3G mode is unavailable at the specific location.
Just dial ×#×#4636#×#× go into phone information and see down if there is GSM only your phone would not support 3G and if It's WCDMA prefferd your phone can use 3G
you can check the 3G by using
These networks are 3G networks.
Updated after test on LG GT540 phone:
You can use
Settings.Secure
to read preferred network mode, as in this code:On my LG GT540 with CM 7.1 firmware, I have four options:
Naturally, GSM is 2G and WCDMA is 3G. Note that this does not provide you with information on which connection is currently active (provided you allow both). For that, see @VikashKLumar's answer.