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



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

我浏览了很多论坛帖子,但都无济于事。我发现了这个帖子,并认为我可以根据自己的需要推荐它使用。但无济于事。

然后我发现了这个:-

ConnectState.Disconnected

但我不知道我是否可以在第一次请求之前使用它来禁用wi-fi,然后再启用wi-fi。

请帮忙。

谢谢

现在,我之所以将上一篇文章标记为未回答,是因为我找到了一种方法,可以强制我的应用程序通过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分享的知识。我希望这能帮助其他有类似要求的人。

简短回答:Windows Phone不可能。因此,应用程序不应该做用户没有明确允许的事情。当有Wi-Fi时,大多数时候都不希望通过3g连接。这些数据计划的价格可能很高,用户不希望在启用Wi-Fi的情况下有应用程序使用它。因此,他不得不自己禁用Wi-Fi以保持完全控制。

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


更新:正如在另一个答案中所指出的,在Windows Phone 7.1 SDK中出现了HttpWebRequest类的新方法SetNetworkPreference()。所以,确实有可能,对我的错误信息感到抱歉。

相关内容

  • 没有找到相关文章

最新更新