Nexus S 4G: использовать Wi-Fi для локальной сети, 3G/4G для глобальной сети?

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

Что я хотел бы сделать, так это разработать сценарий, который я могу запустить для маршрутизации трафика локальной сети через Wi-Fi, а трафика глобальной сети (интернета) через соединение для передачи данных по сотовой сети. Я немного покопался в этой проблеме и нашел это , но, похоже, это не работает, даже после настройки таблицы маршрутизации с маршрутом по умолчанию через интерфейс rmnet0 и вызова интерфейса rmnet0 с помощью ifconfig.

Похоже, что что-то в ОС отключает аппаратное обеспечение 3G, когда Wi-Fi активен. Это известное поведение, и если да, то есть ли у кого-нибудь указания, как я могу его обойти? Я нашел этот пост , где кто-то работал на другом телефоне. Можно ли это сделать на Nexus S?

Хм, интересно. Я знаю, что слышал о телефонах, которые могут одновременно использовать сотовую сеть и Wi-Fi, но я ничего не знаю о Nexus S.
каков вывод команды route после запуска rmnet0?
Я считаю, что по умолчанию отключать данные при подключении к Wi-Fi.

Ответы (1)

по умолчанию 3g/4g не могут сосуществовать с Wi-Fi, 3g/4g будут отключены всякий раз, когда появляется Wi-Fi, если вам это нужно так сильно, вы можете использовать какой-нибудь пользовательский источник рома и изменить приведенный ниже код, чтобы включить 3g во время Wi-Fi, также вам нужно маршрут, как вы уже делаете.

http://gitorious.org/0xdroid/frameworks_base/blobs/234551c44102003c1fb2de5c16f60f9f0cefe71d/services/java/com/android/server/ConnectivityService.java#line224