Notice
Recent Posts
Recent Comments
Link
투케이2K
137. (AndroidStudio/android/java) 실시간 와이파이 (WIFI) 목록 스캔 실시 - WifiManager , IntentFilter , Broadcast 본문
Android
137. (AndroidStudio/android/java) 실시간 와이파이 (WIFI) 목록 스캔 실시 - WifiManager , IntentFilter , Broadcast
투케이2K 2021. 5. 11. 10:08/* =========================== */
[ 개발 환경 설정 ]
개발 툴 : AndroidStudio
개발 언어 : java
/* =========================== */
/* =========================== */
[소스 코드]
[필요 퍼미션]
/**
* TODO ===== [필요한 퍼미션 종류] =====
* <uses-permission android:name="android.permission.ACCESS_WIFI_STATE"/>
* <uses-permission android:name="android.permission.CHANGE_WIFI_STATE"/>
* <uses-permission android:name="android.permission.READ_PHONE_STATE" />
* <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
* <uses-permission android:name="android.permission.CHANGE_NETWORK_STATE" />
* <uses-feature android:name="android.hardware.location.network"/>
* <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>
* <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/>
* */
[실시간 스캔 시작]
//TODO ===== [와이파이 스캔 시작 실시] =====
public void WifiScanStart(){
Log.d("---","---");
Log.d("//===========//","================================================");
Log.d("","\n"+"[A_WifiScan > WifiScanStart() 메소드 : 실시간 와이파이 스캐닝 시작]");
Log.d("//===========//","================================================");
Log.d("---","---");
try {
//TODO [와이파이 스캔 시작 플래그 설정]
wifiStartFlag = true;
//TODO [Wifi Scna 관련 객체 선언]
wifiManager = (WifiManager) getApplicationContext().getSystemService(Context.WIFI_SERVICE);
intentFilter.addAction(WifiManager.SCAN_RESULTS_AVAILABLE_ACTION);
//getApplicationContext().registerReceiver(wifiScanReceiver, intentFilter); //TODO 리시버 시작
registerReceiver(wifiScanReceiver, intentFilter); //TODO 리시버 시작
//TODO [와이파이 스캔 상태 확인]
boolean success = wifiManager.startScan();
if (!success) {
Log.d("---","---");
Log.e("//===========//","================================================");
Log.d("","\n"+"[A_WifiScan > WifiScanStart() 메소드 : 실시간 와이파이 스캐닝 시작 할 수없는 상태]");
Log.d("","\n"+"[로직 : 와이파이 스캔 기능이 정지 상태입니다. 와이파이 설정에서 비활성 후 다시 활성 필요]");
Log.e("//===========//","================================================");
Log.d("---","---");
try {
//TODO 실시간 와이파이 스캐닝 종료
WifiScanStop();
}
catch (Exception e){
e.printStackTrace();
}
}
else {
Log.d("---","---");
Log.w("//===========//","================================================");
Log.d("","\n"+"[A_WifiScan > WifiScanStart() 메소드 : 실시간 와이파이 스캐닝 진행 중인 상태]");
Log.w("//===========//","================================================");
Log.d("---","---");
}
}
catch (Exception e){
e.printStackTrace();
}
}
[실시간 스캔 종료]
//TODO ===== [와이파이 스캔 종료 실시] =====
public void WifiScanStop(){
Log.d("---","---");
Log.d("//===========//","================================================");
Log.d("","\n"+"[A_WifiScan > WifiScanStop() 메소드 : 실시간 와이파이 스캐닝 종료]");
Log.d("//===========//","================================================");
Log.d("---","---");
try {
//TODO [실시간 와이파이 목록 스캔 플래그값 초기화]
wifiStartFlag = false;
//TODO [등록한 리시버 해제 실시]
if(wifiScanReceiver != null){
unregisterReceiver(wifiScanReceiver);
//wifiScanReceiver = null;
//wifiManager = null;
}
//unregisterReceiver(wifiScanReceiver);
}
catch (Exception e){
e.printStackTrace();
}
}
/* =========================== */
/* =========================== */
[결과 출력]
/* =========================== */
/* =========================== */
[파일 첨부 : 전체 소스코드]
/* =========================== */
반응형
'Android' 카테고리의 다른 글
Comments