我正在开发一个移动应用程序(iOS和安卓),通过Wi-Fi控制设备。设备创建了无线网络(SoftAP),但不提供对互联网的访问。
在iOS上,我可以连接到设备并向其IP地址(192.168.70.1)发出请求,但所有其他请求都会回退到移动网络。这允许电话在通过Wi-Fi连接到设备的同时保持互联网连接。
在Android上,如果我连接到设备的无线网络,互联网请求不会退回到移动连接,它们只是失败。
在我的安卓应用程序中,我可以使用ConnectivityManager.requestRouteToHost
来强制我的应用程序的请求使用移动网络。然而,其他应用程序发出的请求仍然使用设备的wifi网络并失败。
我还尝试使用ConnectivityManager
通过以下方式更改网络首选项:
ConnectivityManager.setNetworkPreference(ConnectivityManager.TYPE_MOBILE)
这会使电话对来自所有应用程序的所有请求使用移动网络。Wi-Fi已禁用。似乎在以前的安卓版本中,Wi-Fi仍然可以使用,即使它不是“首选”的网络,但这似乎不适用于KitKat。这可能与Android4.2的变化有关:https://code.google.com/p/android/issues/detail?id=73509 "ConnectivityManager自4.2撕毁了不是NetworkPreference的网络“
有没有一种解决方案,允许Android应用程序对特定的IP地址使用Wi-Fi,对其他所有内容使用移动网络?也许这可以通过NDK来完成?
https://stackoverflow.com/questions/25818810
复制相似问题