【问题标题】:Forcing app to use 3G connection over wi-fi connection in WP7.5在 WP7.5 中强制应用通过 wi-fi 连接使用 3G 连接
【发布时间】:2012-08-03 10:47:25
【问题描述】:

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

我浏览了许多论坛帖子,但没有任何帮助。我找到了 this post,并认为我可以根据我的需要推荐它使用。但没有帮助。

然后我发现了这个:-

ConnectState.Disconnected

但我不知道我是否可以使用它来禁用 wi-fi,直到发出第一个请求,然后再启用 wi-fi。

请帮忙。

谢谢

【问题讨论】:

  • 您将无法通过代码“断开”手机的 3G 连接。他们甚至可能没有 WiFi 连接,但我的建议是尝试连接到 WiFi 连接(如果存在),问题已解决,因为 WiFi 连接将被优先考虑。
  • 我想要的是你所说的反之亦然。我在某个特定时间只想要 3g。如果 3G 和 WI-Fi 都在,我将如何只使用 3G?甚至可以强制我的应用这样做吗?
  • 我把问题的写作方式归咎于我的困惑。我的回答是一样的,你不能强迫用户使用他们的 3G 连接,这完全取决于用户。

标签: c# windows-phone-7 wifi windows-phone-7.1 3g


【解决方案1】:

现在,为什么我没有将上一篇帖子标记为未回答是,我找到了一种方法来强制我的应用程序通过 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 连接,但如果失败,它将自动(无需用户干预)通过可用网络连接。

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

【讨论】:

  • 我刚刚查看了 msdn 文档,您完全正确。 HttpWebRequest 类的 SetNetworkPreference() 方法随 Windows Phone 7.1 一起提供 - 感谢您指出,其他人可能会感兴趣 :)
【解决方案2】:

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

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


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

【讨论】:

  • 这就是客户希望它发生的方式。我想他们正在尝试获取订阅者。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-04-04
  • 1970-01-01
  • 2018-11-01
  • 1970-01-01
  • 2013-07-26
  • 2018-12-05
相关资源
最近更新 更多