2013-08-28 43 views
6

Nếu có hai mạng wifi trong phạm vi mà cả hai đều có cùng một SSID, loại bảo mật và mật khẩu, có bất kỳ ID nào có sẵn để phân biệt giữa chúng không? Có cách nào để lấy ID đó trong Android không?Cách phân biệt giữa các mạng wifi khác nhau?

Trả lời

6

Bạn có thể phân biệt chúng qua BSSID - nếu ai đó sẽ không được chuyển nhượng MAC địa chỉ cố định họ sẽ phải chắc chắn khác nhau (duy nhất) MAC địa chỉ.

Ngoài ra, chúng có thể ở trên các kênh khác nhau. Tôi nghĩ rằng không thể nếu hai mạng có cùng một số SSID, cùng một kênh và giống nhau BSSID.

+1

vì vậy tôi chỉ nên kiểm tra 'BSSID' hoặc' BSSID' và 'SSID' và kênh hoặc' MAC'? luôn hoạt động chính xác? – Soheil

+1

Tôi nghĩ rằng kiểm tra BSSID là đủ nhưng bạn vẫn có thể kiểm tra kênh. – Sajmon

1

Bạn có thể thử trích xuất địa chỉ MAC từ các mạng gửi Router/AP. Địa chỉ này sẽ là duy nhất.

1

sử dụng getSubtype().

Check-out trượt 9 here:

ConnectivityManager mConnectivity = null; 
TelephonyManager mTelephony = null; 
// Skip if no connection, or background data disabled 
NetworkInfo info = mConnectivity.getActiveNetworkInfo(); 
if (info == null || !mConnectivity.getBackgroundDataSetting()) { 
    return false; 
} 

// Only update if WiFi or 3G is connected and not roaming 
int netType = info.getType(); 
int netSubtype = info.getSubtype(); 
if (netType == ConnectivityManager.TYPE_WIFI) { 
    return info.isConnected(); 
} else if (netType == ConnectivityManager.TYPE_MOBILE 
    && netSubtype == TelephonyManager.NETWORK_TYPE_UMTS 
    && !mTelephony.isNetworkRoaming()) { 
     return info.isConnected(); 
} else { 
    return false; 
} 
+0

những gì được trả về bởi 'getSubtype()'? – Soheil

+1

http://developer.android.com/reference/android/net/NetworkInfo.html – JNL

Các vấn đề liên quan