ANDROID: se il WiFi è triggersto e attivo, lanci un'intenzione

Questo è quello che vorrei fare:

=> Se il WiFi è attivo e attivo, lanci un'intenzione (in realtà è un WebView che ottiene il suo contenuto => le istruzioni della mia applicazione sul web)

  • SpannableStringBuilder per creare String con più font / size di text ecc Esempio?
  • Ottieni il path di file da URI
  • Utilizzo del context per avviare un'altra attività
  • Android: perché gli snapshot e gpu sono reciprocamente esclusivi?
  • httpurlconnection è molto lento su Android 4.2
  • Prestazioni ORM: è greenDAO più veloce di ORMLite?
  • => SE NON, vorrei lanciare un'altra intenzione in modo che non mostri un WebView con "pagina Web non disponibile … La pagina Web a http://www.mywebsite.com potrebbe essere temporaneamente in discesa o potrebbe essere mosso …"

    Ho inizialmente usato

    if (wifi.isWifiEnabled ())

    ma questo non dice se la connessione Wifi è triggers o less. Dice solo che l'utente ha triggersto l'accensione. Il dispositivo può o non essere collegato … È questo corretto?

    Poi ho cercato di usare:

    se (wifi.getConnectionInfo (). getSSID ()! = null)

    ma ho notato che restituisce una string anche se la connessione è stata persa o è stata distriggersta …?

    Come devo fare allora?

    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); 

    C'è un modo più generale per verificare se il dispositivo ha la connettività a Internet appena prima di lanciare un intento? sia attraverso Wifi, 3G, ecc …

    Grazie in anticipo per il vostro aiuto.

  • Selezione singola in RecyclerView
  • Erros nel tentativo di sincronizzare i file di spazio di lavoro Eclipse su una macchina Windows e una macchina Ubuntu; quali file devono o non devono essere inclusi?
  • Android - scorrimento orizzontale di più elementi visualizzabili
  • Come hide il button di chiusura nella visualizzazione di ricerca per impostazione predefinita?
  • Il geocoder lavora sugli emulatori
  • PopupWindow in android
  • 5 Solutions collect form web for “ANDROID: se il WiFi è triggersto e attivo, lanci un'intenzione”

    È ansible utilizzare il seguente codice per verificare la connettività:

     private static boolean isConnected(Context context) { ConnectivityManager connectivityManager = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE); NetworkInfo networkInfo = null; if (connectivityManager != null) { networkInfo = connectivityManager.getNetworkInfo(ConnectivityManager.TYPE_WIFI); } return networkInfo == null ? false : networkInfo.isConnected(); } 

    Assicurati di aver registrato l'intenzione di android.net.conn.CONNECTIVITY_CHANGE nel Manifest, altrimenti non riceverai mai una notifica in linea.

    Mi sono lottato con questo problema per l'ultimo paio di giorni e ho appena capito che wherevo registrare CONNECTIVITY_CHANGE e non solo WIFI_STATE_CHANGED.

    Provare android.net.ConnectivityManager.getActiveNetworkInfo() : se restituisce null non hai nessuna connessione; se restituisce un object NetworkInfo , è ansible controllare lo stato della connessione con NetworkInfo.getState() e se è NetworkInfo.State.CONNECTED allora sei connesso, altrimenti non lo sei.

    Puoi farlo come segue:

      @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); } 

    Otternetworking 0,1,2,3 a seconda di quale stato il Wifi è in, così per esempio 2 sta collegando, puoi controllare il resto nei documenti

    Nella tua class BroadcastReceiver:

     @Override public void onReceive(Context context, Intent intent) { String action = intent.getAction(); if (action.equals(WifiManager.SUPPLICANT_CONNECTION_CHANGE_ACTION)){ boolean connected = intent.getBooleanExtra(WifiManager.EXTRA_SUPPLICANT_CONNECTED, false); if (connected){ // start your service here } } } 

    E nel tuo AndroidManifest.xml assicurati di registrarsi per l'intento di trasmissione android.net.wifi.supplicant.CONNECTION_CHANGE.

     <intent-filter > <action android:name="android.net.wifi.supplicant.CONNECTION_CHANGE" /> </intent-filter> 

    isConnected() funziona bene, ricerca qualcos'altro

     final ConnectivityManager connMgr = (ConnectivityManager) this.getSystemService(Context.CONNECTIVITY_SERVICE); final android.net.NetworkInfo wifi = connMgr.getNetworkInfo(ConnectivityManager.TYPE_WIFI); final android.net.NetworkInfo mobile = connMgr.getNetworkInfo(ConnectivityManager.TYPE_MOBILE); if( wifi.isAvailable() && wifi.getDetailedState() == DetailedState.CONNECTED){ Toast.makeText(this, "Wifi" , Toast.LENGTH_LONG).show(); } else if( mobile.isAvailable() && mobile.getDetailedState() == DetailedState.CONNECTED ){ Toast.makeText(this, "Mobile 3G " , Toast.LENGTH_LONG).show(); } else { Toast.makeText(this, "No Network " , Toast.LENGTH_LONG).show(); } 

    questo codice controlla se sei con wifi o 3g o niente, nel caso di connessione wifi ma non collegata a una networking o 3g hanno problemi di segnale che rileva questi dettagli, con DetailedStates

    L'Android è un fan Android di Google, tutto su telefoni Android, Android Wear, Android Dev e applicazioni Android Games e così via.