У меня есть IntentService, который делает некоторые вызовы веб-службы. Прежде чем совершать эти звонки, я проверяю, подключено ли устройство к сети. Я делаю так:
private boolean isOnline() {
ConnectivityManager connec = (ConnectivityManager)getSystemService(getApplicationContext().CONNECTIVITY_SERVICE);
return connec.getNetworkInfo(0).isConnectedOrConnecting();
}
К сожалению, когда я отлаживаю свое устройство Android, это возвращает false, когда у меня есть и сеть, и беспроводное соединение.
Несколько интересных фактов о connec.getNetworkInfo(0):
mIsAvailable = true
mNetworkType = 0
mTypeName = "mobile"
mState.name = "DISCONNECTED"
Ясно, что этого кода недостаточно (возможно, он вернет true только в том случае, если я отправлю какой-нибудь бит по сети и включу радио?). Более того, поскольку я не очень хорошо разбираюсь в ConnectivityManager, я предполагаю, что мне, вероятно, следует сканировать все сети (например: getNetworkInfo (от 0 до N)).
Как я могу правильно выполнить то, что я хочу здесь?