Notice
Recent Posts
Recent Comments
Link
투케이2K
72. (TWOK/LOGIC) [Mobile] android 안드로이드 Wifi 스캔 수행 시 지속 스캔 시도 및 무한 리시버 응답 대기 방어 로직 - 핸들러 타임 아웃 설정 본문
투케이2K 로직정리
72. (TWOK/LOGIC) [Mobile] android 안드로이드 Wifi 스캔 수행 시 지속 스캔 시도 및 무한 리시버 응답 대기 방어 로직 - 핸들러 타임 아웃 설정
투케이2K 2024. 9. 24. 19:42[로직 정리]
정리 로직 : Mobile
상태 : [Mobile] android 안드로이드 Wifi 스캔 수행 시 지속 스캔 시도 및 무한 리시버 응답 대기 방어 로직 - 핸들러 타임 아웃 설정
[설 명]
// --------------------------------------------------------------------------------------
[개발 및 테스트 환경]
// --------------------------------------------------------------------------------------
- 언어 : Java , Kotlin
- 개발 툴 : Android Studio
- 구현 기술 : Wifi Scan List
// --------------------------------------------------------------------------------------
// --------------------------------------------------------------------------------------
[로직 정리]
// --------------------------------------------------------------------------------------
1. 앱 위치 권한 및 GPS 설정, 근처기기 권한 부여 상태 체크 수행
2. 정상적으로 해당 권한이 부여 된 경우 WifiManager 생성 및 와이파이 스캔 시도 수행
>> WifiManager wifiManager = (WifiManager) mContext.getSystemService(WIFI_SERVICE);
wifiManager.startScan();
3. 상위 코드 (startScan) 밑에 핸들러 등록 및 타임 아웃 기능 정의 실시 (30 초 설정)
int delayTime = 30000;
Handler handler = new Handler(Looper.getMainLooper());
handler.postDelayed(new Runnable() {
@Override
public void run() {
// [로딩 프로그레스 종료]
C_Ui_View.stopLoadingShowAlert(SensorGuardRegParentActivity.this);
// [토스트 메시지 출력]
String message = "※ 와이파이 스캔 타임 아웃 ..";
message += "\n" + "\n" + "(지속적 스캔 시 OS 제한이 발생할 수 있습니다 .. 앱 종료 및 잠시 후 다시 시도해주세요)";
C_Ui_View.toastLongError(SensorGuardRegParentActivity.this, message);
}
}, delayTime);
4. BroadcastReceiver 쪽으로 정상적으로 와이파이 스캔 목록이 내려온 경우 해당 목록 파싱 수행 및 예약 된 핸들러 작업 취소 수행
5. 참고 : startScan 기능은 안드로이드 os 9 부터 Deprecated 되었으며, 제한 정책 설정 됨
>> 앱이 네트워크 성능을 개선하고 배터리 수명을 개선하기 위해 요청할 수 있는 스캔 수를 추가로 제한
>> 포그라운드 앱은 2분마다 4번 스캔으로 제한
// --------------------------------------------------------------------------------------
// --------------------------------------------------------------------------------------
[참고 사이트]
// --------------------------------------------------------------------------------------
https://blog.naver.com/kkh0977/223368115419?trackingCode=blog_bloghome_searchlist
https://blog.naver.com/kkh0977/223591408711?trackingCode=blog_bloghome_searchlist
// --------------------------------------------------------------------------------------
반응형
'투케이2K 로직정리' 카테고리의 다른 글
Comments