2014-07-14 3 views
0

Приложение проверяет подключение к сети при запуске. В версиях Android версии 2.3 - 4.4 этот метод работает отлично (будь то эмулятор или фактическое устройство). В эмуляторе предварительного просмотра Android L метод возвращается с ошибкой.ConnectivityManager в Android L Preview

Вот мой код:

// =============================================================== 
public static boolean haveNetworkConnection(Context ctx) { 

    boolean haveConnectedWifi = false; 
    boolean haveConnectedMobile = false; 
    boolean haveConnectedEthernet = false; 

    ConnectivityManager cm = (ConnectivityManager) ctx 
      .getSystemService(Context.CONNECTIVITY_SERVICE); 
    NetworkInfo[] netInfo = cm.getAllNetworkInfo(); 

    for (NetworkInfo ni : netInfo) { 

     // String con = ni.isConnected() ? "Connected" : "Not Connected"; 

     if (!haveConnectedWifi) { 
      if (ni.getTypeName().equalsIgnoreCase("WIFI")) 
       if (ni.isConnected()) 
        haveConnectedWifi = true; 
     } 

     if (!haveConnectedMobile) { 
      if (ni.getTypeName().equalsIgnoreCase("MOBILE")) 
       if (ni.isConnected()) 
        haveConnectedMobile = true; 
     } 

     if (!haveConnectedEthernet) { 
      if (ni.getTypeName().equalsIgnoreCase("ETHERNET")) 
       if (ni.isConnected()) 
        haveConnectedEthernet = true; 
     } 

     StringBuilder sb = new StringBuilder(); 
     sb.append(ni.getTypeName()).append(" ").append(ni); 


    } 
    return haveConnectedWifi || haveConnectedMobile 
      || haveConnectedEthernet; 
} 

Существует несколько странно StringBuilder материал, я не создавал этот код - это в проекте я унаследовал. Мне не нужно ничего менять с тех пор, как он работает. Кто-нибудь знает, есть ли какие-либо изменения API с тем, как работает ConnectivityManager? Я проверил изменения API overview на dev site, но не видел никакой соответствующей информации об этом.

+0

Что такое sb здесь? –

+0

@niteshgoel Это для журнала, который был отредактирован. – KickingLettuce

+1

Для имен типов нет стабильного API. Начните с изменения этого параметра, чтобы использовать NetworkInfo.getType() и проверяя константы ConnectivityManager.TYPE_ *. – alanv

ответ

1

Имя файла было изменено в L, например, должно быть указано «Сотовая связь» вместо «МОБИЛЬ».

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

  • Нет связанных вопросов^_^