Я думаю, что это крайне плохо документированный метод, и хотя вышеприведенный комментарий, говорящий «считай, что это пинг», может быть разумной интерпретацией, я не думаю, что это правильно.Тот факт, что он принимает int в качестве адреса хоста, говорит о том, что это гораздо более низкоуровневый метод, чем тот, и комментарий в JavaDoc This method requires the caller to hold the permission CHANGE_NETWORK_STATE
является еще одной подсказкой, предполагая, что это вносит изменения во внутреннюю таблицу маршрутизации устройства., Эта ссылка дает лучшее объяснение:
requestRouteToHost () не устанавливает соединение в какой-либо сети, оно только гарантирует, что любой трафик для указанного хоста будет маршрутизироваться через указанныйТип сети (Wi-Fi или мобильный).Соединение должно уже существовать в указанной сети.
Это объяснение делает НАМНОГО более целесообразным, учитывая необходимое разрешение.Также кажется, что он не будет работать с WiFi.Таким образом, кажется, что этот метод полезен для следующего: Вы хотите убедиться, что соединение с конкретным хостом будет установлено через УКАЗАТЕЛЬНЫЙ интерфейс, и этот интерфейс не является WiFi.Это может иметь смысл для долгосрочного соединения с низким потреблением трафика и низким энергопотреблением, например, когда вы хотите оставить сокет открытым для сервера и подождать, пока сервер отправит случайное сообщение.Интерфейс мобильной передачи данных имеет больше смысла, чем Wi-Fi, так как вам не нужно постоянно поддерживать Wi-Fi-радио, а мобильная сеть всегда включена.Кстати, именно так работает механизм «проталкивания» сервера iPhone: он поддерживает постоянное подключение сокета к серверу Apple через мобильный интерфейс передачи данных, ожидая, пока сервер что-то скажет.
Итак, в отличие от(выбранный в настоящее время) правильный ответ, я предлагаю ответить на вопрос задающего: Does this routing means changing the WIFI to 3G or vice versa??
на самом деле "Да, вроде как!"Если метод возвращает значение true, вызывающий абонент уверен, что соединения с этим IP-адресом будут происходить через указанный интерфейс.
И Google: Boo для вас, чтобы не документировать некоторые из ваших API лучше!