4

Web サーバーのバックグラウンド監視を実行する Android アプリケーションの作成を開始しています。WiFi が有効になっていると、トラフィックがデフォルトでそれを介して転送されるという問題が発生します。HTTP 要求には常に 3G を使用して、外部の可用性も確認したいと思います。このコードを使用して、プログラムで WiFi を無効にできることはわかっています。

WifiManager wifiManager = (WifiManager)getBaseContext().getSystemService(Context.WIFI_SERVICE);
wifiManager.setWifiEnabled(false);

ただし、バックグラウンドで実行されるため、少し扱いに​​くく、チェックの進行中に WiFi 経由の他の操作が中断されます。Socket Documentationを見ると、これを達成する明白な方法がわかりません。ルート化されていない電話でこれを達成するためのサポートされている方法があるかどうか疑問に思っていますか? 私はサーバーを完全に制御できるので、プロトコルは特に HTTP である必要はありません。

4

2 に答える 2

1

いつでもアクティブなネットワーク接続は1つだけなので、Androidでこれを行うことができるとは思いません。同様の質問がここにも投稿されています:

WiFi を使用せずに 3G ネットワーク経由で HTTP リクエストを送信しますか?

于 2013-01-09T06:20:41.677 に答える
1

これは、Android が許可する非常に危険な機能のようです。

  • 従量制の 3G プランを利用しているユーザーはどうなりますか? アプリが 3G 接続の使用を強制し、バグアウトか何かで、知らず知らずのうちに (WiFi に接続していると思い込んで) データ クォータ全体を吹き飛ばした場合、彼らはどのように感じるでしょうか?

  • また、一度に複数のアクティブなネットワークが存在することはできませんでした。

考えられる解決策 -

  • できることは、アプリケーションがアクティブなときに wifi ネットワークを強制的に無効にし、後で有効にすることです。

  • また、 というメソッドを探してみてくださいrequestRouteToHost。ルートを検索するネットワークの種類とホストを指定できます。

于 2013-01-09T06:28:46.753 に答える