2012-08-10 3 views
2

내 앱에는 Wi-Fi를 사용할 수있는 경우에만 보내려는 데이터가 있습니다. Wi-Fi 또는 모바일 데이터가 사용 가능한지 확인할 수는 있지만, Wi-Fi 및 모바일 데이터가 모두 활성 상태 인 경우 상황은 어떻게됩니까?? 이 경우 wi-fi를 사용하여 강제로 어떻게합니까?WiFi 및 모바일을 사용할 수있을 때 WiFi에서 데이터를 보내도록하십시오.

private static void logNetworkState() { 
    ConnectivityManager connManager = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE); 

    NetworkInfo wifi = connManager.getNetworkInfo(ConnectivityManager.TYPE_WIFI); 
    NetworkInfo mobile = connManager.getNetworkInfo(ConnectivityManager.TYPE_MOBILE); 

    String logStr = "Network state: "; 

    if (wifi.isAvailable()) { 
     logStr+= " wi-fi avalibale;"; 
    } 
    if (mobile.isAvailable()) { 
     logStr+= " mobile network avaliable"; 
    } 
    log(logStr); 
} 
+0

왜 u는 이러한 요구 사항이 있습니까? –

+0

@MohitSharma 모바일 또는 Wi-Fi를 통해 Wi-Fi 및 텍스트 데이터를 통해서만 큰 데이터를 보내려고합니다. –

답변

0

기본적으로 둘 다 활성화되어 있으면 데이터는 WI-FI를 통해 라우팅됩니다. 하지만 다시 기본 네트워크 구현에 따라 다릅니다.

일반적으로 나는 connectivymanager.startusingnetworkfeature()을 사용하여 강제로 모바일 데이터를 사용합니다. 당신은 모두 데이터 전용 무선 랜을 통해 전송되고있을 때 다시 위의 방법의 매개 변수 내 경험 기본적으로

0


고유의 구현입니다. 하지만 비자를 원할 경우이 방법을 사용하면 setNetworkPreference에 도움이 될 수 있습니다.

0

앱의 모든 네트워크 요청을 외부 Wi-Fi 기기로 전송하려면 Lollipop 기기에서 ConnectivityManager#setProcessDefaultNetwork으로 전화하고 직접 API 교체 인 마쉬 멜로 (ConnectivityManager#bindProcessToNetwork)로 전화하세요.

확인이 블로그 게시물 : https://android-developers.googleblog.com/2016/07/connecting-your-app-to-wi-fi-device.html

+0

이 링크가 질문에 대답 할 수 있지만 여기에 답변의 핵심 부분을 포함하고 참조 용 링크를 제공하는 것이 좋습니다. 링크 된 페이지가 변경되면 링크 전용 답변이 유효하지 않게 될 수 있습니다. - [From Review] (리뷰/저품절 게시물/19015384) – Sunil

관련 문제