WifiではなくGSM接続を使用してAndroidでHTTPリクエストを行う必要があります。
私の現在の解決策は、すべてのWi-Fi接続から切断し、リクエストを実行することです。より良い解決策はありますか?APIに関連するメソッドが見つかりませんでした(パッケージを調べましたorg.apache.httpが、どのタイプの接続を使用する必要があるかを完全に認識していないようです)。
アプリケーションがGSMを介してHTTPリクエストを送信する必要がある場合、アプリケーションが開始されたとき、またはユーザーがこのアクションをトリガーしたときに、質問で提案されたとおりに実行するのが最適です。
ただし、接続タイプがGSMの場合にアプリがHTTPリクエストを送信する必要がある場合は、少し異なります。その最後の場合、私はそのようにします:
private static boolean isOnlineUsingGsm(Context ctx) {
final ConnectivityManager connectManager = (ConnectivityManager)ctx.getSystemService(Context.CONNECTIVITY_SERVICE);
// Return true if connected thru GSM
return connectManager.getNetworkInfo(ConnectivityManager.TYPE_MOBILE).getState() == NetworkInfo.State.CONNECTED;
}
private void somewhereInTheCode() {
if (isOnlineUsingGsm(context)) {
sendHttpRequest();
}
// else don't send it
}
しかし、どのタイプの接続を使用すべきかを完全に認識していないようです
正しい-間接参照はあなたの友達です-位置情報サービス(たとえば)はまったく同じです