2013-10-28 51 views
1

我正在寫一個android應用程序,並試圖找出是否有一個可靠的方式來確定手機是否在特定的WiFi網絡上。是否可以可靠地檢測到我正在使用哪個WiFi網絡?

例如,我只想在連接到家庭wifi時執行某些操作。

有誰知道這有可能嗎?

+0

這個問題的兩個響應都是部分錯誤的,有時候當你嘗試獲取ssid時,它會在ssid中聲明x0,或者爲null。 他們不是100%reliables awnsers – xanexpt

回答

2

是的,有這個兩個辦法,Android和iOS/iPhone。

在Android上,你到底需要使用此方法:android.net.wifi.WifiInfo.getSSID

在iPhone上這是一個完全不同的世界。你可以在這裏找到一個很好的描述: iPhone get SSID without private library

+0

感謝您的回答,丹尼爾。我也非常關心這個安全方面。我在Android編程方面沒有太多的背景知識,所以這可能是一個簡單的問題:調用getSSID的方法類似於Unix中的系統調用嗎?也就是說,如果設備被盜,那麼小偷是否會輕易欺騙getSSID的結果並誘騙我的應用執行它不應該做的事情? – user1094206

+0

單靠SSID絕對不夠,因爲您的手機可以配置爲登錄到任何打開的WiFi。然後,小偷只需要創建一個與您的網絡具有相同SSID的開放式wifi,手機就會自動登錄到它,並且對getSSID的呼叫將報告與您的家庭網絡相同的名稱。帶路由器的Anyboby可以在幾分鐘內完成。對於一個安全的解決方案,您需要深入挖掘並從另一個角度來解決這個問題,而不是SSID,而不是路由器的MAC地址,而不是從家中100米範圍內的任何可複製和可接收的東西。 –

+0

我不是安全專家。您應該提出如何安全地將範圍內的家庭網絡作爲單獨問題發佈的問題,也許回到http://security.stackexchange.com。當你這樣做時,請在這裏鏈接另一個問題。 –

1

你可以得到當前的WiFi連接的SSID:

WifiManager mng = (WifiManager)context.getSystemService(Context.WIFI_SERVICE); 
String currentSSID = mng.getConnectionInfo().getSSID(); 
相關問題