2010-11-22 3 views
4

내 응용 프로그램에서 몇 가지 Wi-Fi 시나리오를 처리 할 때 제안이 필요합니다.안드로이드 장치에서 WiFi 모니터링

내 응용 프로그램이 실행 중이며 잠시 동안 장치가 유휴 상태로 있고 절전 모드로 전환되었다고 가정합니다. 절전 모드에서는 Wi-Fi가 자동으로 꺼집니다. 이제 다시 슬리 프 모드에서 기기를 가져 오면 Wi-Fi 상태를 켜는 데 약간의 시간이 걸립니다. 이 시간 동안 앱 백그라운드 서비스가 http 요청을하는 경우 어떻게 처리할까요? 사용자/백그라운드 서비스가 HTTP 요청을하는 경우

또는

무선 인터넷을 사용할 수없는 경우 가정

, 장치는 우리가 코드를 처리하는 방법,이 기간 동안 GPRS/3G와 경우 연결을 시도?

답변

2
  1. 당신은 네트워크 인터페이스를 나열 할 수 있습니다, 자신의 유형 및 연결 상태 : 네트워크 인터페이스

    networkInfo.getType() == ConnectivityManager.TYPE_MOBILE // or TYPE_WIFI 
    

    상태 점검에 대한의

    NetworkInfo[] networkInfos = ConnectivityManager.getAllNetworkInfo(); 
    

    검사 유형 :

    모든 네트워크 인터페이스를 가져옵니다 NetworkInfo.State

    networkInfo.getState() == NetworkInfo.State.CONNECTED 
    
  2. 당신은 당신이 할 수있는 다음 연결을해야하는 경우 :

    가. 위에서 설명한대로 네트워크 상태를 확인하십시오.

    b. 수신자를 등록하면 네트워크 연결이 변경 될 때 업데이트 정보를 얻을 수 있습니다. Intent action for network events in android sdk

  3. 연결이없는 경우 HTTP 데이터를 가져 오려고하면 예외가 발생합니다. 이것을 파악하고 나중에 다시 시도 할 수 있지만 옵션 2가 더 좋습니다.

관련 문제