2012-11-02 29 views
2

我想開發一個應用程序,連接一些特定的WiFi接入點,如果它可用。我記錄一個以30秒爲間隔循環的服務,並查看這些特定的WiFi接入點是否可用。 我擔心它會消耗太多資源。我正在考慮一個解決方案,如果有任何可能android wifiManager(或其他實用程序)通知我的服務有關新的wifi接入點可用。它就像新的無線接入點監聽器。Android WiFi接入點可用事件

在android中有沒有實用工具來實現這個目標?

回答

2

你應該記住,當WiFi無線電打開時,你的android設備會定期掃描WiFi網絡。所以你不需要手動檢查它們。它將使操作系統的負載加倍。

您可以在您的服務中爲SCAN_RESULTS_AVAILABLE_ACTION設置偵聽器。它會在設備完成常規掃描過程時通知您。當您收到此廣播時,請檢查所有接入點以查看您的所需接入點是否可用。但是,您只能在WiFi處於開啓狀態時才能執行此操作。但更好地保持WiFi打開而不是連續地打開和關閉,尤其是當您以30秒的短時間間隔進行打開和關閉時,這會使電池耗盡更快。

+1

我想問同樣的問題,什麼是常規時間爲了這個掃描?你有什麼想法。 順便謝謝你的明確答案。 – Alper

+2

這取決於各種因素:CPU速度,RAM,活動任務數量,取決於手機之間的電話。您可以檢查廣播接收器並打印時間。通常它大約15秒(我在LG LU3000雙核心上檢查過)並且變化很大。 –

1

您可以在網上看到樣品。你的應用程序可以做類似http://marakana.com/forums/android/examples/40.html

+0

我已經將這個邏輯應用到了我的應用程序中。如果有新的wifi接入點可用,我需要一個通知程序。 如果你仔細閱讀我的問題,我需要一個不同的方法。 – Alper

+0

WiFi掃描結果顯示WiFi管理員會收到通知。您可以存儲最新的掃描結果,並在新列表到達時進行比較。無需循環或輪詢。開銷只來自列表比較。看到這裏的更多細節:http://stackoverflow.com/questions/4253249/android-get-notified-when-a-new-access-point-is-detected – SomeWittyUsername

+0

好吧,我明白你的觀點,似乎是「SCAN_RESULTS_AVAILABLE_ACTION 「適用於我的解決方案(這只是我沒有改變wifi aps的數量,當我關閉適配器並打開接收器接收輸入時)。但我不明白這一部分,android播放這個信號的時間表是什麼?這種掃描有沒有時間間隔?對此有何評論? – Alper