NetworkInterface.getNetworkInterfaces () генерирует исключение с нулевой строкой сообщения

Я взял старый код для восстановления, и один из методов, который работал на моем планшете и телефоне, больше не работает. Я пытаюсь использовать рутину, которую я взял здесь, чтобы получить свой IP-адрес.

Когда программа выполняет строку 4 (начиная с «for (Enumeration …», она сразу переходит в секцию исключения исключений. Исключение не имеет сообщения, а для строки ex.getMessage () возвращает значение null. Число исключений – 830034796568 ( десятичная дробь).

Вот код. Как уже упоминалось, это работало отлично год назад.

Спасибо за любую помощь!

public String getLocalIpAddress() { String address= null; try { for (Enumeration<NetworkInterface> en = NetworkInterface.getNetworkInterfaces(); en.hasMoreElements();) { NetworkInterface intf = en.nextElement(); for (Enumeration<InetAddress> enumIpAddr = intf.getInetAddresses(); enumIpAddr.hasMoreElements();) { InetAddress inetAddress = enumIpAddr.nextElement(); address = new String(inetAddress.getHostAddress().toString()); if (!inetAddress.isLoopbackAddress() && address.length() < 18) { return inetAddress.getHostAddress().toString(); } } } } catch (SocketException ex) { String msg = ex.getMessage(); //do nothing } return null; } 

Просто уточнить с полным ответом.

 NetworkInterface.getNetworkInterfaces() 

SocketException если приложению отсутствует это разрешение в AndroidManifest.xml

 <uses-permission android:name="android.permission.INTERNET" /> 

В моих тестах (на Android 4.4.2) может быть пропущено android.permission.ACCESS_NETWORK_STATE .

Intereting Posts
Отправить уведомление о полезной нагрузке с помощью устройства node-gcm на устройство Android Cordova 3.4 Заставка не работает Как собрать собственную стеклу без страшного разрешения READ_LOGS? Android KitKat securityException при попытке чтения из MediaStore Невозможно добавить сведения о продукте при создании новой цитаты Xamarin Android Exception вызывает «Frame not in module» Андроид UTF8 кодирование из полученной строки Методы ведения журнала Anko не могут быть решены POST-корпус JSON с использованием Retrofit Пользовательское разрешение для приложения Невозможно создать задачи для загрузки Proguard Mapping File.java.lang.IllegalStateException: разрешение конфигурации 'androidTestAnnotationProcessor' Установка Google Плагина для Eclipse в Eclipse Android Developer Tools (ADT) Bundle Заполнять каждый фрагмент в ViewPager другим объектом JSON без повторной загрузки JQuery мобильных событий на Android и iphone Android – требуется обратный вызов при отображении вида