2017-04-11 28 views
0

WiFi信標包含多個信息。例如,它們包含網絡名稱(bssid),信標時間等。此外,它們還可以包含信息元素(IE)形式的供應商擴展。來自android的wifi掃描訪問信息元素

在adroid中是否有API允許您訪問這些IE?一種替代方案也可以作爲一串字節訪問原始wifi信標。

+0

您指的是否有特定的WiFi信標硬件?如果是這樣,那麼提供鏈接可能會有所幫助。 – davidgyoung

+0

對於信標,我的意思是在無線信道上發送的幀不是硬件設備。 WiFi信標是包含例如網絡名稱(SSID)的幀。除此之外,還有其他信息。對我來說,擁有一個API能夠提供原始框架就足夠了。然後我可以自己解析它。 – Roberto

回答

0

接收像信標幀這樣的低級WiFi數據包僅限於使用本地API的系統應用程序,因此根訪問當然需要來完成此操作。此外,您可能需要使用OTG適配器連接到USB端口的外部WiFi設備以允許您執行此操作。 Kismet Wireless的開發人員開發了一款應用程序,其中包含開源代碼,可在Android上使用低級libpcap代碼進行此操作。您可以在此訪問:https://www.kismetwireless.net/android-pcap/

上述工具捕獲WiFi數據包(包括信標幀)並將它們寫入Android上的文件。我自己修改了這個代碼,將原始數據包作爲字節數組發送到我的應用程序,從中我可以解析字節數組中的字節,從信標幀中提取字段。

是的,這是很多工作,並且在根和對外部WiFi設備的需求方面有很多限制。顯然,這不是問題中提到的內置Android API。不幸的是,我相信這是最接近你能來的。抱歉。

說明:這個問題是關於低層WiFi分組信標幀,而不是鄰近信標(例如,iBeacon,Eddystone),可能由beacon StackOverflow標籤提出。