2009-12-17 36 views
4

但是,即使設備連接到Wi-Fi網絡,我也需要通過WWAN(即移動網絡)在iPhone上建立網絡連接,但是我找不到辦法做到這一點。在iPhone上強制使用WWAN連接,即使Wi-Fi可用

我已經嘗試了下來到套接字級別並遍歷可用接口,但是當連接到Wi-Fi時,WWAN接口(pdp_ip0)消失。

該解決方案需要是App Store的安全。

+0

只是想知道,你爲什麼想去WWAN?一般來說,蘋果有限制WWAN流量的興趣,所以如果他們不提供這種方式,我不會感到驚訝。 – 2009-12-17 08:32:37

+0

這是應用程序需要連接的服務的不可協商的操作要求。要傳輸的數據量絕對是最小的 - 我們最多談論幾百個字節。 – 2009-12-17 08:38:28

+0

我唯一能想到的就是關閉Wi-Fi連接。不知道是否有API。 – NSResponder 2009-12-17 08:50:29

回答

2

也許您可以使用Reachability代碼來確定是否啓用Wi-Fi,觸發UIAlertView警告用戶退出應用程序,打開設置應用程序並手動關閉無線。不理想,絕對。

+0

是的 - 我一直在尋找可達性代碼。問題是,要求用戶關閉Wi-Fi就是在App Store中獲得應用程序大量1星評論的一種方式。 – 2009-12-17 09:32:04

+0

我聽到你的聲音。希望你找到答案 - 我對此很好奇,我自己。 – 2009-12-17 11:46:48

+0

我不明白Reachability代碼如何讓您確定是否啓用Wi-Fi;只有當你可以使用它到達服務器。但是對於地理定位,您只需啓用它,而不是實際使用它進行通信。有沒有辦法測試手機上實際啓動的Wi-Fi? – Oscar 2011-04-18 03:55:42

1

有沒有支持的方式來做到這一點。您需要告訴用戶關閉WiFi連接,因爲「這是應用程序需要連接的服務的不可協商的操作要求。」

在這種情況下,如果您清楚爲什麼他們必須禁用WiFi,用戶不太可能會因爲糟糕的評論而殺死您。

-t

4

枚舉網絡接口,你會看到,當你連接上WiFi和3G,有2個不同的本地IP地址。在發送數據之前,您可以通過在正確的接口上強制綁定套接字來使用一個接口。試圖找到路由數據包的最佳接口的內核應該滿足您的選擇。 聲明:我沒有試過這個,這只是一個建議。

+0

我可以確認這在蜂窩接口啓動時工作正常。我不清楚天線還沒有起作用的情況。我使用更高級別的http API在使用套接字之前喚醒網絡,並且我無法控制使用哪個接口。 – user1055568 2015-01-06 23:03:04