2012-06-10 4 views
1

Я написал программу для проверки доступности сети или нет. Вот мой простой код:Всегда сообщать, что сеть недоступна при использовании программы NetworkInfo

 public boolean isNetworkAvailable() { 
    Context context = getApplicationContext(); 
     ConnectivityManager connectivity=ConnectivityManager)context.getSystemService(Context.CONNECTIVITY_SERVICE); 
    if (connectivity == null) { 
    boitealerte(this.getString(R.string.alert),"getSystemService rend null"); 
    } else { 
    NetworkInfo[] info = connectivity.getAllNetworkInfo(); 
    if (info != null) { 
    for (int i = 0; i < info.length; i++) { 
     if (info[i].getState() == NetworkInfo.State.CONNECTED) { 
      return true; 
      } 
     } 
    } 
} 
    return false; 
    } 

Я запустить его на своем Android телефон, он всегда возвращает ложь, но сеть доступна и я могу совершать звонки.

ответ

1

Государство NetworkInfo.State.CONNECTED говорит вам, если у вас есть подключение к данным (либо через Wi-Fi или мобильный телефон. Не «говорить» телефонное соединение.

+0

Я хотел бы знать, если «мобильная сеть» доступна или нет (т. е. наш сервис или зона обслуживания). Возможно ли это с помощью этой программы – yasserbn

+0

Я также пробовал этот код 'code'final ConnectivityManager connMgr = (ConnectivityManager) activity.getSystemService (Context.CONNECTIVITY_SERVICE); final android.net .NetworkInfo mobile = connMgr.getNetworkInfo (ConnectivityManager.TYPE_MOBILE); if (mobile.isAvailable()) { // Делаем что-то еще. } Он не работает, функция mobile.isAvailable() всегда возвращает false. – yasserbn

+1

Только ConnectivityManager использует соединения для передачи данных. Для получения информации о телефонном сигнале ознакомьтесь с этим руководством: http://www.firstdroid.com/2010/05/12/get-provider-gsm-signal-strength/ – Moritz

Смежные вопросы