我正在开发移动应用程序(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