Sto sviluppando un'applicazione mobile (iOS e Android) per controllare un dispositivo tramite Wi-Fi. Il dispositivo crea una rete wireless (SoftAP) ma non fornisce l'accesso a Internet.Android: Come utilizzare una rete Wi-Fi per host specifici ma utilizzare il telefono Rete mobile per tutto il resto
Su iOS, posso connettermi al dispositivo ed effettuare richieste al suo indirizzo IP (192.168.70.1) ma tutte le altre richieste ricadono sulla rete mobile. Ciò consente al telefono di mantenere la connettività Internet mentre è connesso al dispositivo tramite Wi-Fi.
Su Android, se mi collego alla rete wireless del dispositivo, le richieste Internet non ricadono sulla connessione mobile, ma falliscono.
Nella mia app per Android, posso utilizzare ConnectivityManager.requestRouteToHost
per forzare le richieste dalla mia app a utilizzare la rete mobile. Tuttavia, le richieste fatte da altre app utilizzano ancora la rete wifi del dispositivo e falliscono.
ho anche cercato di usare il ConnectivityManager
per modificare le preferenze di rete con:
ConnectivityManager.setNetworkPreference (ConnectivityManager.TYPE_MOBILE)
Questo fa sì che il telefono per utilizzare la rete cellulare per tutti richieste da tutte le applicazioni. Il Wi-Fi è disabilitato. Sembra che nelle versioni precedenti di Android Wi-Fi potrebbe ancora essere utilizzato anche se non è la rete "preferita", ma questo non sembra funzionare in KitKat. È probabilmente correlato a un cambiamento in Android 4.2: https://code.google.com/p/android/issues/detail?id=73509 "ConnectivityManager dal 4,2 strappa reti che non sono NetworkPreference"
Esiste una soluzione che consente a un'app Android di utilizzare il Wi-Fi per uno specifico indirizzo IP e il rete mobile per tutto il resto? Forse questo può essere fatto tramite l'NDK?
Hai trovato una soluzione per specificare la rete di streghe che desideri utilizzare su tutte le versioni di Android? – DjimOnDev
No. Potrebbe esserci una soluzione per Lollipop ma non ho ancora avuto il tempo di studiarlo. –
@PaulGreyson, come hai fatto questo per iOS? Sto cercando una soluzione simile per fare richieste http sulla rete mobile mentre il dispositivo è su wifi. – keno