3

日中にデータを収集し、データをSDカードに保存するアプリの小さなサービスがあります。データが大きくなることが前提であるため、アプリはユーザーのデータ プランを介してそのデータをアップロードしないでください。

Wi-Fi が「存在する」が使用できない状況があり、可能であればデータ プラン接続を使用して、電話がネットワーク リクエストを可能な限りルーティングします。

リクエストがwifi接続のみを通過するか、それ以外の場合は失敗することを保証する方法はありますか?

編集:

私の質問を読んで、何が起こっているのかを詳しく説明していないことがわかりました。環境からデータを収集しており (何らかの形式のログ)、そのデータが SD カードに蓄積されています。ユーザーが近くまたは自宅 (またはその他の WiFi 対応の場所) にいる場合、ソフトウェアはそれを検出し、http POST 要求を介して SD カードの内容をデキューする必要があります。ファイルのサイズが 1MB 以上あるため、Wifi の存在を検出しても、転送中に変更される可能性があります。さらに悪いことに、Wifi はオンでもルーティングできないため、電話はデータ プランを介して接続をルーティングし、その月の予算を台無しにしてしまいます。

4

1 に答える 1

0

これは、次の 2 つの方法で実現できます。

1- アップロードする前に、現在モバイルが Wi-Fi 経由で接続されていることを確認してください。これは関数の例です。

 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 への切り替えです。

于 2013-02-10T00:30:56.017 に答える