我正在開發移動應用程序(iOS和Android)以通過Wi-Fi控制設備。該設備創建無線網絡(SoftAP),但不提供對互聯網的訪問。Android:如何爲特定主機使用Wifi網絡,但使用手機使用移動網絡一切
在iOS上,我可以連接到設備並向其IP地址(192.168.70.1)發出請求,但所有其他請求都會回退到移動網絡。這可讓手機在通過Wi-Fi連接到設備時保持互聯網連接。
在Android上,如果我連接到設備無線網絡,互聯網請求不會回退到移動連接,它們只會失敗。
在我的Android應用程序中,我可以使用ConnectivityManager.requestRouteToHost
來強制從我的應用程序使用移動網絡的請求。但是,其他應用程序發出的請求仍然使用設備WiFi網絡並失敗。
我也曾嘗試使用ConnectivityManager
更改與網絡偏好:
ConnectivityManager.setNetworkPreference(ConnectivityManager.TYPE_MOBILE)
這將導致使用移動網絡的所有電話所有應用程序的請求。無線網絡無法使用。看來在以前版本的Android Wi-Fi仍然可以使用,即使它不是「首選」網絡,但這似乎不適用於KitKat。它可能與Android 4.2中的更改有關:https://code.google.com/p/android/issues/detail?id=73509「ConnectivityManager自4.2撕下不屬於NetworkPreference的網絡」
是否有解決方案允許Android應用程序使用Wi-Fi作爲特定IP地址,移動網絡的一切?也許這可以通過NDK完成?
您是否找到了解決方案來指定您想要在所有Android版本上使用的女巫網絡? – DjimOnDev 2015-04-28 08:00:48
不,這可能是有一個棒棒糖的解決方案,但我還沒有時間去調查它。 – 2015-04-28 23:07:33
@PaulGreyson,你是怎麼做到這一點的iOS?我正在尋找類似的解決方案,通過移動網絡在設備使用wifi時發出http請求。 – keno 2015-07-02 18:44:36