Nexus S 4G: utiliser le wifi pour le LAN, la 3G / 4G pour le WAN?

8

Je développe une application de télécommande qui utilisera le wifi pour communiquer avec mon autoradio. L'autoradio a Ethernet, et j'ai l'Ethernet câblé à un AP sans fil dans mon coffre. Cela fonctionne très bien, mais comme le téléphone dispose d'une connexion wifi, il veut l'utiliser pour accéder à Internet, ce qu'il ne peut pas faire lorsque ma voiture est loin de chez moi.

Ce que j'aimerais faire, c'est développer un script que je puisse exécuter pour acheminer le trafic LAN via le wifi, mais le trafic WAN (Internet) via la connexion de données cellulaires. Je creusais un peu dans cette question, et a trouvé cela , mais il ne semble pas fonctionner, même après ajustement de la table de routage avec une route par défaut via l'interface rmnet0 et la mise en place de l'interface rmnet0 avec ifconfig.

Il semble que quelque chose dans le système d'exploitation désactive le matériel 3G lorsque le wifi est actif. Est-ce un comportement connu et, dans l'affirmative, quelqu'un a-t-il des indications sur la façon de le contourner? J'ai trouvé ce post où quelqu'un travaillait sur un autre téléphone. Peut-on le faire sur le Nexus S?

tonycpsu
la source
Hum ... intéressant. Je sais que j'ai entendu parler de téléphones qui peuvent utiliser à la fois le réseau cellulaire et le WiFi, mais je ne connais pas le Nexus S.
Matthew Read
quelle est la sortie de la commande route après avoir fait apparaître rmnet0?
devnul3
Je crois que c'est un comportement par défaut de désactiver les données lorsqu'il est connecté au wifi.
Shawn

Réponses:

1

par défaut, 3g / 4g ne peut pas coexister avec le wifi, 3g / 4g sera désactivé chaque fois que le wifi arrivera, si vous en avez tellement besoin, vous pouvez utiliser une source de rom personnalisée et modifier le code ci-dessous pour activer la 3g pendant le wifi, vous devez également route comme vous le faites déjà.

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

Riyaz Mohammed Ibrahim
la source