Android启用WiFi时,Android强制通过互联网流量

时间:2013-01-09 06:08:47

标签: android sockets

我开始编写一个Android应用程序来执行我的Web服务器的后台监控。启用WiFi后,问题是流量是默认的,我希望始终使用3G进行HTTP请求来检查外部可用性。我知道我可以使用此代码以编程方式禁用WiFi:

WifiManager wifiManager = (WifiManager)getBaseContext().getSystemService(Context.WIFI_SERVICE);
wifiManager.setWifiEnabled(false);

但由于它将在后台运行,它有点笨拙,并且会在检查正在进行时中断WiFi上的其他操作。看Socket Documentation我看不出任何明显的方法来实现这一目标。我想知道是否有任何支持的方法可以在非root用户手机上实现这一目标?我完全控制服务器,因此协议不一定是HTTP。

2 个答案:

答案 0 :(得分:1)

我不相信你可以在android中执行此操作,因为在任何给定时间只有一个网络连接处于活动状态。类似的问题也在这里发布:

Send HTTP request through 3G network without using WiFi?

答案 1 :(得分:1)

对于Android而言,这似乎是一个非常危险的功能。

  • 那些使用3G计划的用户呢?如果一个应用程序强迫他们使用3G连接,然后在他们甚至不知道的情况下吹掉他们的整个数据配额,他们会感觉如何(认为他们使用的是WiFi)?

  • 此外,一次不能有多个活动网络。

可能的解决方案 -

  • 您可以做的是在应用程序处于活动状态时强制禁用wifi网络,然后再启用它。

  • 此外,请尝试搜索名为requestRouteToHost的方法。它允许您指定网络类型和要查找路由的主机。