Forcer Android à utiliser la 3G sur un réseau local wifi sans accès net
J'ai un wifi configuration de réseau qui n'ont pas accès à internet. Juste divers autres dispositifs sans fil connectés. Le DHCP est configuré pour ne pas retourner une passerelle ou de serveur dns. Seulement une adresse IP et un masque de réseau.
Quand je connecte mon android pour ce wifi AP, il se connecte bien, mais toutes les connexions internet sur le téléphone s'arrête de fonctionner.
Je m'attends à ce que, depuis le wifi n'a pas de paramètre de passerelle que android devrait réaliser l'internet ne peut pas passer par la connexion et devrait plutôt être acheminé par le biais de la connexion 3G qui est à 5 bars.
J'ai essayé de fixer une adresse IP statique sur le téléphone android en tant que bien, mais cela n'a pas aider.
La principale raison de cette configuration est de sorte que l'appareil android peut transférer des données sur ce réseau à distance à internet par un serveur basé sur car il peut se connecter aux périphériques locaux sans problème. Toutefois, la 3G côté est cassé une fois le wifi est de l'installation.
Des idées sur la façon de contourner ce problème?
source d'informationauteur Stephen Hankinson
Vous devez vous connecter pour publier un commentaire.
De code, si vous constatez qu'il n'y a pas de connectivité, vous pouvez désactiver le WiFi...
Que d'un paramètre, il n'y a aucun (pas de bonne façon de vérifier s'il y a vraiment de la connectivité universelle et fiable). Mais certains téléphones à faire exactement ce que vous décrivez automatiquement, comme par exemple mon LG P-970.
(Note: Android se déconnecte de réseaux mobiles lorsqu'il se connecte au WiFi, donc il n'y a pas de façon d'être toujours connecté à un WiFi, mais la route d'accès à internet par le mobile, même si Linux peut le faire (avec le
ip route ...
suite d'outils))Je ne peux pas garantir que cela fonctionne car c'est quelque chose que j'ai expérimenté il y a quelques temps. J'avais un besoin similaire à l'utilisation de la 3G (ou d'un autre réseau mobile) lorsque le wifi-réseau connecté a pas de route vers le monde extérieur.
Le code suivant devrait laisser tomber la connexion wifi afin de permettre au réseau de téléphonie mobile pour viennent pour jouer. Vous aurez besoin de faire plusieurs essais le long de la voie et de ré-établir la connexion wifi de nouveau par la suite...
Google a ajouté quelques méthodes utiles dans Android SDK 21 à cet effet.
Vous pouvez créer
NetworkRequest
:Et vous pouvez ensuite demander un tel réseau à l'aide de
ConnectivityManager
. Par exemple, vous voulez être sûr que toutes les requêtes HTTP seront transmises à travers le réseau avec l'accès internet. Vous pouvez construire votre Rénovation de l'API de cette façon:S'il vous plaît, l'esprit le fil de sécurité lorsque vous utilisez l'extrait de code.
Je suggère également de vérifier ConnectivityManager#bindProcessToNetwork et ce blog.
ConnectivityManager.NetworkCallback
est une classe vide et il a plusieurs méthodes.vous n'avez pas besoin de coder quoi que ce soit. j'ai trouvé une application qui font exactement la même chose. vous pouvez configurer pour déconnecter automatiquement à partir de la wifi si il n'y a pas d'internet à partir de cette connexion.
https://play.google.com/store/apps/details?id=com.nLabs.internetconnectivity&hl=fr