2012-08-03 30 views
3

我有一个应用程序,在用户启动应用程序并接受EULA后立即开始注册过程,并完成注册过程以获取user_id应用程序必须击中3台服务器。即使Wi-Fi可用,第一台服务器也必须通过3G连接,用户收到禁用Wi-Fi的消息并仅连接到3G网络以继续注册。所有的代码都已到位,应用程序也能正常工作。但新的要求是忽略Wi-Fi,只使用3G,这样用户就不会受到需要更改手机设置的消息的干扰。强制应用程序通过wi-fi连接在WP7.5中使用3G连接

我经历了许多论坛帖子,但没有任何帮助。我发现 this post,并认为我可以参考它根据我的需要使用。但没有帮助。

后来我发现这一点: -

ConnectState.Disconnected 

但我不知道我是否可以使用该禁用的Wi-Fi,直到第一个请求时再启用后的Wi-Fi。

请帮忙。

谢谢您

+0

您无法通过代码“断开”手机3G连接。他们可能甚至没有WiFi连接,但我的建议是尝试连接到WiFi连接(如果存在),因为WiFi连接将优先解决问题。 – 2012-08-03 11:05:24

+2

我想要的是反过来你所告诉..我只在一个特定的时间只有3克。如果3G和WI-Fi都在使用,我将如何使用3G?是否有可能迫使我的应用程序这样做? – Apoorva 2012-08-03 11:23:51

+0

我认为这个问题是为我的困惑写的。我的回答是一样的,你不能强迫用户使用他们的3G连接,这完全取决于用户。 – 2012-08-03 16:16:20

回答

2

现在,为什么我没有将之前的帖子标记为未答复,我找到了一种强制我的应用程序通过Wi-Fi使用3G网络连接的方法,最好的部分是,它只会在应用程序级别发生而不是设备级别。当然,用户会被告知为了注册目的,我们将使用3G网络。这是代码。

在我的httpconnection类的post()方法中。在发起请求之前,我正在做以下事情。

HttpWebRequest myHttpWebRequest1 = (HttpWebRequest)WebRequest.Create(uri); 
//the network preference depends on the requestID 
      if (requestId == DataManager.REQ_REGISTRATION) 
      { 
       myHttpWebRequest1.SetNetworkPreference(NetworkSelectionCharacteristics.Cellular); 
      } 
      else 
      { 
       myHttpWebRequest1.SetNetworkPreference(NetworkSelectionCharacteristics.NonCellular); 
      } 

就这么简单。在其他情况下(不是我的要求),3G不是强制性的,但是首选,应用程序试图通过3G连接,但如果失败,它会自动(无用户干扰)通过可用网络连接。

感谢Steve分享的知识。 我希望这可以帮助其他具有类似要求的人群。

+1

我只是看了一下msdn的文档,你完全正确。 HttpWebRequest类的SetNetworkPreference()方法随Windows Phone 7.1一起提供 - 感谢您指出,可能对其他人感兴趣:) – Anheledir 2012-08-13 12:10:48

1

简短回答:Windows Phone无法使用。 作为一个原因,应用程序不应该能够执行用户没有明确允许的操作。当有Wi-Fi时,大多数情况下不需要3g以上的连接。这些数据计划价格很高,用户不希望有应用程序在启用Wi-Fi时使用它。所以他必须自己禁用Wi-Fi才能完全控制。

只是好奇:为什么通过3g连接如此重要的这个特定的服务器?


更新:作为另一种回答指出,那边传来的HttpWebRequest级用的Windows Phone 7.1 SDK的新方法SetNetworkPreference()。所以,确实有可能,对我的错误信息感到抱歉。

+0

这就是客户希望它发生的方式。我想他们正试图获得订户。 – Apoorva 2012-08-06 07:06:34

相关问题