Это - то, что я хотел бы сделать:
=>, ЕСЛИ WiFi включают И активен, запустите намерение (на самом деле, это - веб-представление, которое получает его содержание => инструкции моего приложения в сети),
=> В ПРОТИВНОМ СЛУЧАЕ тогда я запустил бы другое намерение так, чтобы я не показывал веб-представление с "Веб-страницей, не доступной... Веб-страница по http://www.mywebsite.com могла бы временно снизиться, или она, возможно, переместилась..."
Я жесткий первоначально для использования
если (wifi.isWifiEnabled ())
но это не говорит, активно ли соединение Wi-Fi или нет. Это говорит только, что пользователь включил переключатель. Устройство может или не может быть подключено... Это корректно?
Тогда я пытался использовать:
если (wifi.getConnectionInfo () .getSSID ()! = пустой указатель)
но я заметил, что это возвращает строку, даже если соединение было потеряно или было отключено...?
Как я должен сделать тогда?
wifi = (WifiManager)getSystemService(Context.WIFI_SERVICE);
Intent intent_instructions;
if (wifi.getConnectionInfo().getSSID()!= null){
Log.i("Hub", "WiFi is enabled AND active !");
Log.i("Hub", "SSID = "+wifi.getConnectionInfo().getSSID());
intent_instructions = new Intent(this, Instructions.class);
}else{
Log.i("Hub", "NO WiFi");
intent_instructions = new Intent(this, Instructions_No_WiFi.class);
}
this.startActivity(intent_instructions);
Существует ли более общий способ протестировать, если устройство имеет возможность соединения к Интернету прежде, чем запустить намерение? будьте этим через Wi-Fi, 3G, и т.д...
Заранее спасибо за Вашу справку.
Вы можете сделать это следующим образом:
@Override
public void onReceive(Context context, Intent intent) {
String action = intent.getAction();
if(WifiManager.WIFI_STATE_CHANGED_ACTION.equals(action)){
Log.d("WIFI", "WIFI has changed");
int wifiState = intent.getIntExtra(WifiManager.EXTRA_WIFI_STATE, -1);
Log.d("WIFI", "WIFI State = " + wifiState);
setCurrentWifiState(wifiState);
}
Вы получите 0,1,2,3 в зависимости от того, в каком состоянии находится Wi-Fi, например, 2 подключается, остальное вы можете проверить в документах
Попробуйте android.net.ConnectivityManager.getActiveNetworkInfo ()
: если он возвращает null
, у вас нет соединения; если он возвращает объект NetworkInfo
, вы можете проверить состояние соединения с помощью NetworkInfo.getState ()
, и если это NetworkInfo.State.CONNECTED
, тогда вы подключен, иначе вы нет.