Пинг для проверки подключения к домену - PullRequest
1 голос
/ 11 июля 2011

В моем приложении для Android я запрашиваю базу данных.Я могу запрашивать базу данных только в том случае, если телефон подключен к внутренней сети, т. Е. Подключен к корпоративной сети Wi-Fi или подключен через VPN.

Сначала я хотел бы проверить это подключение - может быть,пытаться сначала «пинговать» сервер?Возможно ли это?

Спасибо.

Ответы [ 2 ]

1 голос
/ 11 июля 2011

Просто попробуйте подключиться к сети / базе данных / ip и обработать все исключения, возникшие из-за недоступности сети или из-за истечения времени ожидания.

Вы также можете попробовать InetAddress , который имеет метод isReachable ().

0 голосов
/ 11 июля 2011

Вы можете использовать android.net.ConectivityManager, если вы действительно хотите проверить состояние сети.

ConectivityManager.requestRouteToHost () может использоваться для обеспечения доступности сервера (хотя были сомнения относительно его надежности - упомянуто в ответе CommonsWare здесь: как управлять подключением к Интернету через Wi-Fi в Android? )

В качестве альтернативы, если вы просто хотите проверить, подключен ли WIFI, попробуйте

ConectivityManager.getNetworkInfo (ConectivityManager.TYPE_WIFI) .isConnected ()

Пара предостережений:

1) Я набираю это в браузере, а не в IDE, поэтому могут возникнуть синтаксические ошибки,

2) Вам придется сделать этот код гораздо более оборонительным для производства, и

3) Все тесты подключения в ConectivityManager могут быть ненадежными, если сети в настоящее время становятся доступными или недоступными.

Надеюсь, это охватывает то, что вы спрашивали.

...