小编Pau*_*son的帖子

Android:如何为特定主机使用Wifi网络,但手机使用移动网络用于其他所有主机

我正在开发一个移动应用程序(iOS和Android)来通过Wi-Fi控制设备.设备会创建无线网络(SoftAP),但不提供对Internet的访问.

在iOS上,我可以连接到设备并向其IP地址(192.168.70.1)发出请求,但所有其他请求都会回退到移动网络.这允许手机在通过Wi-Fi连接到设备时保持互联网连接.

在Android上,如果我连接到设备无线网络,互联网请求不会回退到移动连接,它们就会失败.

在我的Android应用中,我可以ConnectivityManager.requestRouteToHost用来强制我应用的请求使用移动网络.但是,其他应用程序发出的请求仍然使用设备wifi网络并失败.

我还试图用以下方法ConnectivityManager来改变网络偏好:

ConnectivityManager.setNetworkPreference(ConnectivityManager.TYPE_MOBILE)

这会导致手机使用移动网络来处理来自所有应用程序的所有请求.Wi-Fi已禁用.似乎在Android的早期版本中,即使它不是"首选"网络,仍然可以使用Wi-Fi,但这似乎在KitKat中不起作用.这可能与Android 4.2中的更改有关:https://code.google.com/p/android/issues/detail? id = 73509"自4.2以来ConnectivityManager断开了不属于NetworkPreference的网络"

是否有解决方案允许Android应用程序将Wi-Fi用于特定IP地址,移动网络用于其他所有内容?也许这可以通过NDK完成?

mobile networking android

22
推荐指数
2
解决办法
3947
查看次数

标签 统计

android ×1

mobile ×1

networking ×1