InetAddress.getByName, UnknownHostException на некоторых устройствах - PullRequest
0 голосов
/ 24 августа 2018

В приложении Android, выполняющем следующий фрагмент кода, чтобы определить, присутствует ли имя хоста в моей сети:

for (int i = 0; i < listOfHostnames.size(); i++) {
     //noinspection unused
     String hostname = listOfHostnames.get(i).getAddress();
     try {
      InetAddress test = InetAddress.getByName(listOfHostnames.get(i).getAddress());
      //noinspection unused
      String testHost1 = test.getHostAddress();
      Logging.logw("Found", testHost1);
     } catch (Exception e) {
      Logging.logw(e.getClass() + " InetAddress EX", e.getMessage());
      continue;
     }
     //.....
}

Это работает на большинстве протестированных мною устройств, но не работает на Samsung Galaxy Tab.A (SM-T550) со следующим исключением (имя хоста не является таковым):

W / class java.net.UnknownHostException InetAddress EX: невозможно разрешить хост "hostname-abc": нетадрес, связанный с именем хоста

Нужен ли Samsungs какой-либо дополнительный код или есть другой способ проверить, присутствует ли имя хоста в сети?

EDIT

listOfHostnames - это список объектов, где метод getAddress возвращает имена хостов, например «BrandT-12-28183» (тип имен хостов, которые используют устройства)

У меня также объявлены эти разрешенияв манифесте:

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