Как проверить телефонную сеть на устройствах Android - PullRequest
2 голосов
/ 03 апреля 2011

Я знаю, как проверить, есть ли у меня доступ к Интернету (используя код из этого поста), , но можно ли проверить, есть ли у телефона доступ к телефонной сети? Например, кто-то может иметь доступ к Интернету через Wi-Fi, но не иметь доступа к телефонной сети для отправки SMS или совершения звонков.

В моем случае при использовании реального устройства (Samsung Galaxy S) я могу выключить свою сеть 3G (тогда телефон обнаружит, что я не подключен к Интернету), но я все еще могу сделать телефон звонки и отправка смс. Наверное, я использую какую-то другую сеть ...

Как проверить, подключена ли телефонная сеть? Нужен ли мне TelephonyManager?

Спасибо за ваше время.

Мел

Ответы [ 2 ]

3 голосов
/ 03 апреля 2011

Конечно, вы не просто используете это: getNetworkType ()

boolean hasNetwork = android.telephony.TelephonyManager.getNetworkType() != android.telephony.TelephonyManager.NETWORK_TYPE_UNKNOWN; 
// True if the phone is connected to some type of network i.e. has signal
1 голос
/ 17 марта 2013

Приведенный выше ответ не сработал для одного из пользователей моего приложения - он был подключен к сети, но его тип сети был неизвестен. Снимок экрана: http://dl.dropbox.com/u/5072192/SC20130317-161413.png

Вместо этого я проверяю поле NetworkOperator. (Из первого ответа здесь Как правильно проверить доступность мобильной сети (без передачи данных) )

public static boolean isMobileAvailable(Context acontext) {       
    TelephonyManager tel = (TelephonyManager) context.getSystemService(Context.TELEPHONY_SERVICE);       
    return (tel.getNetworkOperator() != null && !tel.getNetworkOperator().equals(""));      
}
...