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();