В приложении 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" />