펌 OK (출처 표시), 상업적 이용 NO, 컨텐츠 변경 NO
전역변수로
ScanResult scanResult;
WifiManager wm;
List apList;
WifiManager 초기화
wm = (WifiManager) getSystemService(WIFI_SERVICE);
검색
wm.startScan(); 때려주고
IntentFilter filter = new IntentFilter();
filter.addAction(WifiManager.SCAN_RESULTS_AVAILABLE_ACTION);
registerReceiver(wifiReceiver, filter);
이렇게 브로드캐스트리시버를 사용해줘야한다.
이유는 스캔이 끝났을 때를 체크하기 위해서이다
브로드캐스트리시버 선언
private BroadcastReceiver wifiReceiver = new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent) {
if (intent.getAction().equals(WifiManager.SCAN_RESULTS_AVAILABLE_ACTION)) {
searchWifi();
}
}
};
스캔이끝났다는 방송이 전달되면 searchWifi() 호출
searchWifi를 보면
public void searchWifi() {
apList = wm.getScanResults();
if (wm.getScanResults() != null) {
int size = apList.size();
for (int i = 0; i < size; i++) {
scanResult = (ScanResult) apList.get(i);
}
}
}
이렇게 하면 scanResult에 Wifi에 대한 정보들이 입력된다. 호출은 반복문 안에서나 원하는 위치에서
scanResult.SSID 등으로 이용할 수 있다.
Wifi가 on인지 off인지 모를때는 필터액션에 와이파이 스테이트 체인지액션까지 넣어주면 더욱좋다
-끝-
'Android > WI-FI' 카테고리의 다른 글
Wifi 주파수대역에 따른 채널값 구하는 방법 (3) | 2015.01.13 |
---|---|
연결된 Wifi의 IP Address 확인 (1) | 2014.01.08 |
Wifi를 검색하여 자동으로 연결하기 (2) | 2013.10.23 |
Wifi상태 체크 + 자동 연결해제 (9) | 2013.08.05 |
WifiManager를 이용한 와이파이 속도 테스트 (1) | 2013.08.01 |