2012-08-03 34 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

相關問題