Я пытаюсь выяснить, как определить, доступен ли определенный ipaddress в моем приложении для Android во время отладки (я не пробовал это на реальном устройстве).
Из прочтения выясняется, что InetAddress.isReachable должен сделать это для меня.
Сначала я думал, что смогу написать что-то вроде:
InetAddress address = InetAddress.getByAddress (новый байт [] {(байт) 192, (байт) 168, (байт) 254, (байт) 10);
success = address.isReachable (3000);
Это возвращает false, хотя я вполне уверен, что это достижимый адрес.
Я обнаружил, что если я изменил это значение на 127, 0, 0, 1, это вернуло бы успех.
Моей следующей попыткой был тот же код, но я использовал адрес, полученный с пинга www.google.com (72.167.164.64 на момент написания статьи). Безуспешно.
Итак, я попробовал еще один пример:
int timeout = 2000;
InetAddress[] addresses = InetAddress.getAllByName("www.google.com");
for (InetAddress address : addresses)
{
if ( address.isReachable(timeout))
{
success = true; // just set a break point here
}
}
Я относительно новичок в Java и Android, поэтому подозреваю, что что-то упустил, но не могу найти ничего, что указывало бы, что это такое.