2013-02-09 4 views
3

하루 종일 데이터를 수집하는 작은 서비스를 가지고 있으며 데이터를 SD 카드에 저장합니다. 전제는 데이터가 커질 것이므로 앱은 사용자의 데이터 계획에 해당 데이터를 업로드해서는 안됩니다.http 연결이 wifi를 통과하는지 확인하십시오.

Wi-Fi가 '있지만'사용할 수없는 경우가 있으며 가능한 경우 가능한 한 데이터 계획 연결을 사용하여 전화가 네트워크 요청을 라우팅합니다.

요청이 Wi-Fi 연결 만 통과하거나 그렇지 않으면 실패하는 것을 보장하기위한 방법이 있습니까?

편집 : 나는 무슨 일인지 내가 자세히 설명하지 않았다는 것을 발견

내 질문에 읽는. 환경 (일부 로깅 형식)에서 데이터를 수집하고 데이터가 SD 카드에 누적됩니다. 사용자가 집이나 근처에있을 때 (또는 다른 WiFi 사용 가능 장소) 소프트웨어는 HTTP POST 요청을 통해 SD 카드 내용을 감지하고 대기열에서 빼내야합니다. 파일 크기가 1MB 이상이므로 Wi-Fi가 있음을 감지하더라도 전송 중에 변경 될 수 있습니다. 또는 Wi-Fi는 ON 상태가 될 수 있지만 라우팅 할 수 없으므로 전화는 데이터 요금제를 통해 연결을 라우팅하고 한 달 동안 예산을 망칠 수 있습니다.

답변

0

당신은 두 가지로 이것을 달성 할 수있다 : 현재 모바일이 Wi-Fi를 통해 연결되어

1 업로드하기 전에 프라하, 단, 여기

public static boolean isConnectedToWiFi(Context context) { 
    NetworkInfo activeNetwork = getConnectivityManager(context) 
      .getActiveNetworkInfo(); 
    if (activeNetwork != null) { 
     return activeNetwork.isConnected() 
       && activeNetwork.getType() == ConnectivityManager.TYPE_WIFI; 
    } 
    return false; 
} 

2에 들어 예를 들어 함수이다 연결이 변경되면 예 : android.net.conn.CONNECTIVITY_CHANGE 브로드 캐스트 모니터 변경 3G로 전환

관련 문제