簡體   English   中英

檢測wifi已啟用(無論是否已連接)

[英]Detect wifi enabled (regardless of whether it's connected)

對於GPS跟蹤應用程序,在打開WIFI的情況下記錄位置信號會導致真正不精確的數據或帶有間隙的數據。

我已經使用Reachability查詢來檢測在開始跟蹤之前wifi是否可用。 問題是,如果在進行該查詢時啟用了wifi但未連接到網絡,則表明無法通過wifi訪問互聯網,但這並不表示設置應用中是否禁用了該設置。 這意味着如果用戶開始運行並且在中途運行連接,他們將從wifi而不是GPS或蜂窩網絡獲得位置信號。 因此,這些數據點的准確度可能> 10米,所以我想跳過這一點。 問題是,在wifi上,他們將有一個很大的空白時段,他們的信號沒有被記錄下來。

那么如何檢查wifi是否已啟用但已斷開連接?

我已經閱讀了我能找到的所有其他可達性討論,但這似乎是一個差距,有很多回復錯誤地表明可達性解決了這個開箱即用的問題。

...而且我不會要求 wifi - 只是提醒他們啟用它的事實,因此在他們的鍛煉中的某些時候他們的位置數據可能會丟失(由於不准確)。

你提問已經有一段時間了,但我剛剛遇到過這個問題。

如果你想遵守Apple的規則,看起來沒有辦法做到這一點。 sysctl和ioctl將無法工作,因為沒有標志會顯示WiFi已啟用。 例如,如果禁用WiFi或啟用WiFi但未連接,則“UP”和“RUNNING”的標志將相同。

Apple自己的WiFi框架使用mach直接與內核通信,我懷疑Apple會在AppStore中允許這樣的代碼。

這是可能的,但解決方案是模糊和丑陋的。 簡短的回答是,如果您看到兩個名稱為“awdl0”的接口,則啟用WiFi,只啟用一個並禁用它。

請參閱更好的方法來檢測iOS上啟用/禁用WiFi? 有關更完整的說明和示例代碼。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM