C# 在WP7.5中强制应用程序通过wi-fi连接使用3G连接

C# 在WP7.5中强制应用程序通过wi-fi连接使用3G连接,c#,windows-phone-7,wifi,windows-phone-7.1,3g,C#,Windows Phone 7,Wifi,Windows Phone 7.1,3g,我有一个应用程序,只要用户启动应用程序并接受EULA,注册过程就会开始,要完成注册过程以获取用户id,应用程序必须访问3台服务器。第一台服务器必须通过3G连接,即使wi-fi可用,用户也会收到一条消息,禁用wi-fi并仅连接到3G网络以继续注册。所有代码都已准备就绪,应用程序也运行良好。但新的要求是忽略wi-fi,只使用3G,这样用户就不会被需要更改手机设置的信息打扰 我浏览了很多论坛帖子,但没有任何帮助。我找到了,并认为我可以参考它使用,根据我的需要。但是没有帮助 然后我发现:- Connec

我有一个应用程序,只要用户启动应用程序并接受EULA,注册过程就会开始,要完成注册过程以获取用户id,应用程序必须访问3台服务器。第一台服务器必须通过3G连接,即使wi-fi可用,用户也会收到一条消息,禁用wi-fi并仅连接到3G网络以继续注册。所有代码都已准备就绪,应用程序也运行良好。但新的要求是忽略wi-fi,只使用3G,这样用户就不会被需要更改手机设置的信息打扰

我浏览了很多论坛帖子,但没有任何帮助。我找到了,并认为我可以参考它使用,根据我的需要。但是没有帮助

然后我发现:-

ConnectState.Disconnected
但我不知道我是否可以使用此功能禁用wi-fi,直到发出第一个请求,然后再启用wi-fi

请帮忙


谢谢

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

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



更新:如另一个答案所述,在Windows Phone 7.1 SDK中出现了HttpWebRequest类的新方法SetNetworkPreference()。因此,这确实是可能的,很抱歉我的错误信息。

现在,我为什么不将上一篇文章标记为“不回答”,是因为我找到了一种方法,可以强制我的应用程序通过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连接,但如果失败,它将自动(无用户干扰)通过可用网络连接

感谢史蒂夫分享的知识。
我希望这能帮助其他具有类似要求的ppl。

您将无法通过代码“断开”手机的3G连接。他们甚至可能没有WiFi连接,但我的建议是尝试连接到WiFi连接(如果存在),问题已解决,因为WiFi连接将被优先考虑。我想要的是与您所说的相反。。我只想在某一特定时间使用3g。如果3G和WI-Fi都启用,我将如何仅使用3G?甚至有可能强迫我的应用程序这么做吗?我把我的困惑归咎于问题的编写方式。我的答案是一样的,你不能强迫用户使用他们的3G连接,这完全取决于用户。这是客户希望它发生的方式。我想他们是想得到订户。我只是看了一下msdn文档,你完全正确。HttpWebRequest类的SetNetworkPreference()方法随Windows Phone 7.1提供-感谢您指出,其他人可能会感兴趣:)