Я пытаюсь выяснить, как определить, доступен ли конкретный ipaddress в приложении для Android в процессе отладки (я не пробовал это на реальном устройстве).
Из чтения видно, что InetAddress.isReachable должен сделать это для меня.
Изначально я думал, что могу написать что-то вроде:
InetAddress address = InetAddress.getByAddress(новый байт [] {(байт) 192, (байт) 168, (байт) 254, (байт) 10); success = address.isReachable(3000);
Это возвращает false, хотя я уверен, что это доступный адрес.
Я обнаружил, что если я изменил это на 127, 0, 0, 1, он вернул успех.
Моя следующая попытка была в том же коде, но я использовал адрес, который я получил от ping 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, поэтому я подозреваю, что у меня что-то не хватает, но я не могу найти ничего, что могло бы указать на то, что это такое.