2013-08-28 3 views

답변

6

당신은 BSSID을 통해 구별 할 수 - 누군가가 확실히 다른 (독특한) MAC 주소를해야합니다 고정 MAC 주소를 할당하지 않을 경우.

다른 채널에있을 수도 있습니다. 2 개의 네트워크가 동일한 SSID, 동일한 채널 및 동일한 BSSID 인 경우 불가능하다고 생각합니다.

+1

그래서'BSSID' 또는'BSSID'와'SSID'와 채널이나'MAC' 만 체크해야할까요? 항상 올바르게 작동합니까? – Soheil

+1

BSSID 확인으로 충분하다고 생각하지만 여전히 채널을 확인할 수 있습니다. – Sajmon

1

보내는 네트워크 라우터/AP에서 MAC 주소 추출을 시도 할 수 있습니다. 이 주소는 고유 할 것입니다.

1

getSubtype()을 사용하십시오.

체크 아웃 슬라이드 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

'getSubtype()'에 의해 반환되는 것은 무엇입니까? – Soheil

+1

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