AndroidDev 板


LINE

※ 引述《choYM (choYM)》之銘言: : 大家好 : 最近在寫有關抓周圍AP的小程式 : 這個程式必須在每1秒取得兩次wifi scan的結果 並存起來 因為WiFi掃瞄是Android系統和硬體的行為 不是你一秒掃幾次他就回你幾次的 : 但是我發現 這兩次的scan結果 不管如何 都是一樣的 : 我不確定是不是我寫法有問題 還是WiFiManager的限制 : 如果改成每1秒掃一次 就不會有這問題== : 附上程式碼片段 請大家幫我看看 謝謝 : String s = ""; : for(int i=0; i<2; i++)//1秒內scan的次數 : s += wifiScan(); : public String scanWifi(){ : String s = ""; : WiFiManager wifiManager = (WifiManager)this.getSystemService( : Context.WIFI_SERVICE); : if (!wifiManager.isWifiEnabled())//打開wifi : wifiManager.setWifiEnabled(true); : //掃描 將資訊存在list : wifiManager.startScan(); 來看看 WifiManager.startScan() http://tinyurl.com/5sdrfvr Request a scan for access points. Returns immediately. The availability of the results is made known later by means of an asynchronous event sent on completion of the scan. 呼叫 WifiManager.startScan() 之後,回傳的值為是否呼叫成功 而掃描是非同步進行的,比較可靠的就是用 BroadcastReceiver 去等掃瞄完成的通知 順帶一提,WifiManager.setWifiEnabled(boolean) 也是一樣的 不是呼叫後就瞬間開啟完成,也是要用 BroadcastReceiver 去等 以下你的程式馬上就取回呼叫結果 當掃描還沒完成,取到一樣的結果的可能是很大的 : List<ScanResult> list = wifiManager.getScanResults(); : //將資訊以字串方式輸出 : if(list != null){ : for(int j=0; j<list.size(); j++){ : s += list.get(j).BSSID + "%%" + list.get(j).SSID + "%%" + : list.get(j).level + "%%" + : list.get(j).frequency + "%%" + : list.get(j).capabilities + "%%" + : list.get(j).describeContents() + "\r\n"; : } : s+="-\r\n"; : } : return s; : } 關鍵部份大概長這樣 // 要註冊給系統的 BroadcastReceiver // 當有符合的事件發生時,便會被呼叫 BroadcastReceiver wifiScanReceiver = new BroadcastReceiver() { public void onReceive(Context context, Intent intent) { // 取得你要的掃描結果 } }; // 像系統註冊,並以 IntentFilter 告訴系統你要接收的事件是什麼 // 也就是 WifiManager.SCAN_RESULTS_AVAILABLE_ACTION context.registerReceiver( wifiScanReceiver, new IntentFilter(WifiManager.SCAN_RESULTS_AVAILABLE_ACTION) ); // 然後發出掃描需求 wifiManager.startScan(); // 當不需要再接收時,記得取消 context.unregisterReceiver(wifiScanReceiver); -- 如果 BroadcastReceiver 沒用過或不熟 就先看一下他的原理吧 --



※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 1.165.176.207
1F:推 choYM:我有找到相關的討論 謝謝你~~我再來好好研究研究!! 10/27 10:55







like.gif 您可能會有興趣的文章
icon.png[問題/行為] 貓晚上進房間會不會有憋尿問題
icon.pngRe: [閒聊] 選了錯誤的女孩成為魔法少女 XDDDDDDDDDD
icon.png[正妹] 瑞典 一張
icon.png[心得] EMS高領長版毛衣.墨小樓MC1002
icon.png[分享] 丹龍隔熱紙GE55+33+22
icon.png[問題] 清洗洗衣機
icon.png[尋物] 窗台下的空間
icon.png[閒聊] 双極の女神1 木魔爵
icon.png[售車] 新竹 1997 march 1297cc 白色 四門
icon.png[討論] 能從照片感受到攝影者心情嗎
icon.png[狂賀] 賀賀賀賀 賀!島村卯月!總選舉NO.1
icon.png[難過] 羨慕白皮膚的女生
icon.png閱讀文章
icon.png[黑特]
icon.png[問題] SBK S1安裝於安全帽位置
icon.png[分享] 舊woo100絕版開箱!!
icon.pngRe: [無言] 關於小包衛生紙
icon.png[開箱] E5-2683V3 RX480Strix 快睿C1 簡單測試
icon.png[心得] 蒼の海賊龍 地獄 執行者16PT
icon.png[售車] 1999年Virage iO 1.8EXi
icon.png[心得] 挑戰33 LV10 獅子座pt solo
icon.png[閒聊] 手把手教你不被桶之新手主購教學
icon.png[分享] Civic Type R 量產版官方照無預警流出
icon.png[售車] Golf 4 2.0 銀色 自排
icon.png[出售] Graco提籃汽座(有底座)2000元誠可議
icon.png[問題] 請問補牙材質掉了還能再補嗎?(台中半年內
icon.png[問題] 44th 單曲 生寫竟然都給重複的啊啊!
icon.png[心得] 華南紅卡/icash 核卡
icon.png[問題] 拔牙矯正這樣正常嗎
icon.png[贈送] 老莫高業 初業 102年版
icon.png[情報] 三大行動支付 本季掀戰火
icon.png[寶寶] 博客來Amos水蠟筆5/1特價五折
icon.pngRe: [心得] 新鮮人一些面試分享
icon.png[心得] 蒼の海賊龍 地獄 麒麟25PT
icon.pngRe: [閒聊] (君の名は。雷慎入) 君名二創漫畫翻譯
icon.pngRe: [閒聊] OGN中場影片:失蹤人口局 (英文字幕)
icon.png[問題] 台灣大哥大4G訊號差
icon.png[出售] [全國]全新千尋侘草LED燈, 水草

請輸入看板名稱,例如:BuyTogether站內搜尋

TOP