2

私のアプリには、wi-fi が利用可能な場合にのみ送信したいデータがあります。Wi-Fi またはモバイル データが利用可能かどうかを確認できますが、Wi-Fi とモバイル データの両方がアクティブな場合、どのように対処すればよいですか? この場合、wi-fi を強制的に使用するにはどうすればよいですか?

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);
}
4

3 に答える 3

0

両方がデフォルトで有効になっている場合、データは WI-FI 経由でルーティングされます。ただし、これも基盤となるネットワークの実装に依存します。

通常、私はconnectivymanager.startusingnetworkfeature()を使用して、モバイルデータを強制的に使用します。繰り返しますが、上記のメソッドのパラメーターは実装固有です

于 2012-08-10T09:19:08.877 に答える
0


デフォルトでは、両方のデータがある場合の私の経験として、wifi 経由でのみ転送されます。ただし、ビザの逆を行いたい場合は、この方法がsetNetworkPreferenceに役立つ場合があります 。

于 2012-08-10T10:55:04.347 に答える