requestRouteToHost android - PullRequest
       8

requestRouteToHost android

0 голосов
/ 18 марта 2010

Приветствую всех! Я довольно сыт по горло классом Android ConnectivityManager. Я пытался в течение 5 часов, чтобы заставить requestRouteToHost работать. Я запускаю свой код на эмуляторе, но requestRouteToHost всегда терпит неудачу. Я знаю, что у меня есть подключение, потому что я вызвал getActiveNetworkInfo (), и он был подключен. Я добавил разрешения ACCESS_NETWORK_STATE и CHANGE_NETWORK_STATE безрезультатно. Любые советы будут с благодарностью.

EDIT -------- Метод InetAddress.isReachable также не работает. Я использовал имя хоста java.sun.com, как указано в документации. Я думаю, что это проблема с эмулятором. Sam

Ответы [ 3 ]

2 голосов
/ 21 апреля 2010

Похоже, requestRouteToHost () не реализован для WiFi. Закрытый класс WifiStateTracker не имеет реализации requestRouteToHost (). Вместо этого реализация по умолчанию из базового класса NetworkStateTracker всегда возвращает false.

0 голосов
/ 13 февраля 2012

Комбинация requestRouteToHost (lookupHost ()), которую вы делаете, очень рискованна

См. Ваш код:

conn_man.requestRouteToHost(ConnectivityManager.TYPE_WIFI, lookupHost("localhost")))

Здесь вы сначала выполнили поиск хоста, а затем запрашиваете маршрут к нему. Он будет хорошо работать только для статических адресов (например, localhost), где реальный поиск не выполняется. Если вам нужен поиск DNS для определения адреса хоста, он легко потерпит неудачу. Как правило, requestRouteToHost удобен только для статических адресов.

0 голосов
/ 18 марта 2010

Я бы рекомендовал протестировать requestRouteToHost() на реальном хосте. Мало того, что я не уверен, что localhost как имя обязательно распознается на Android, это будет само устройство / эмулятор, который будет выходить через ни Wi-Fi, ни 3G, поэтому я ожидаю, что requestRouteToHost() потерпит неудачу.

У вас также могут быть проблемы с тем, откуда вы получаете lookupHost(). Например, я не уверен, что эта реализация поддерживает localhost.

...