Идеально, как предложено в вопросе, если приложение должно отправить HTTP-запрос через GSM сейчас , во время его запуска или во время запуска этого действия пользователем.
Но если приложению необходимо отправить HTTP-запрос , когда , тип подключения - GSM, это немного отличается.В этом последнем случае я бы сделал так:
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
}