Google Android - как выяснить, включены ли 3g и 2g

Я разрабатываю простое приложение для Google Android для включения и отключения Wi-Fi или 3g или 2g.

Я вижу http://developer.android.com/reference/android/net/wifi/WifiManager.html#isWifiEnabled() что вы можете видеть, включен ли Wi-Fi или отключен, а также мы http://developer.android.com/reference/android/net/wifi/WifiManager.html#setWifiEnabled(boolean) для включения и отключения Wi-Fi.

Мне интересно, можно ли сделать то же самое для 3G и для 2G/GPRS? Я знаю, это возможно, потому что вы можете отключить 3G и оставить 2G.

Ответ 1

2G/3G

Для определения типа вашей сети используйте:

TelephonyManager.getNetworkType();

вот пример кода:

bool is3G = (manager.getNetworkType() == TelephonyManager.NETWORK_TYPE_UMTS);

Документы для класса можно найти по адресу: TelephonyManager


On/Off

Чтобы проверить, включено или выключено радиотелефон, используйте:

ServiceState.getState();

Чтобы установить его, используйте:

ServiceState.setState(STATE_POWER_OFF);

Непонятно, существует ли метод setState для всех устройств и функций во всех состояниях. Для этого метода нет документации. Документацию для класса можно найти по адресу: ServiceState

Эта проблема также может быть актуальной: http://code.google.com/p/android/issues/detail?id=1065

Ответ 2

Вы также можете использовать ConnectivityManager. Что-то вроде этого:

ConnectivityManager connectivityManager =(ConnectivityManager)mContext.getSystemService(Context.CONNECTIVITY_SERVICE); 
NetworkInfo activeNetInfo = connectivityManager.getActiveNetworkInfo();