펌 OK (출처 표시), 상업적 이용 NO, 컨텐츠 변경 NO
일반적으로 많이 알려진 Wifi Scan 방법은 Wifi가 활성화 돼 있을때만 가능하다.
때문에 Wifi Scan이 필요할 때, 사용자의 Wifi를 강제로 Enable 시킨 뒤 스캔을 하고, 스캔이 끝다면 다시 비활성화 시키는
방식으로 많이들 구현한다.
그런데 Android 버전 4.3(SDK 18)부터 추가된 '항상 검색 허용' 설정을 이용하면 Wifi가 비활성화 상태라도
Wifi를 스캔할 수 있다.
해당 옵션이 활성화 돼 있을때만 위와같은 동작이 가능하다.
소스코드상으로는 해당 설정을 컨트롤 할 수 없으며, 사용자가 직접 설정할 수 있다.
따라서 SDK 버전이 18 이상인지, '항상 검색 허용' 설정이 활성화상태인지 체크를 한 다음
조건을 만족하지 않는다면 기존 방식을 이용하고, 만족한다면 Wifi를 건들지 않고 바로 스캔을 진행할 수 있다.
위 조건을 구현하는 방법은 아래와 같다.
if (Build.VERSION.SDK_INT >= 18) { // 4.3 버전 이상인지 체크한다.
if (mWM.isScanAlwaysAvailable()) { // 항상검색 허용 설정이 활성화상태인지 체크한다.
mWM.startScan(); // 바로 스캔 실행
return;
}
}
mWM.setWifiEnabled(true);
// 위 조건을 만족하지 않는다면 Wifi 상태에 변화를 줘서 BroadcastReceiver에 액션이 들어오게 하여 스캔을 진행한다.
// 자세한 방법은 http://biig.tistory.com/14 참조
끝.
'Android > WI-FI' 카테고리의 다른 글
소스코드로 WiFi 연결시키기 (1) | 2015.08.31 |
---|---|
Wifi 주파수대역에 따른 채널값 구하는 방법 (3) | 2015.01.13 |
연결된 Wifi의 IP Address 확인 (1) | 2014.01.08 |
Wifi를 검색하여 자동으로 연결하기 (2) | 2013.10.23 |
Wifi 목록 검색하는법 (1) | 2013.10.23 |