quando eu abrir meu aplicativo android quando não há acesso Wi-Fi conectado que não mostram WiFi ligado como i dada no código

votos
0

mas quando eu ligar meu aplicativo com o WiFi ainda não mostram WiFi ligado, então eu tenho que fechar o aplicativo e abra-o novamente com o Wi-Fi ligado.

if (wifimanager.setWifiEnabled(true)) {
      punchin.setOnClickListener {

          if ((conMgr.activeNetworkInfo != null) && (wifi.isAvailable == true && wifi.isConnected == true)) {

              Log.v(MAc, mac= + wMAC + \n + wbssid + \n + wssid)

              if ((wbssid == ) && (wssid.equals())
                      && conMgr.activeNetworkInfo != null && conMgr.activeNetworkInfo.isAvailable
                      && conMgr.activeNetworkInfo.isConnected) {

                  textView.text = Connected to correct Wifi
                  punchout.visibility = View.VISIBLE

              } else if (wbssid!=) {

                  Toast.makeText(applicationContext, Connect To Correct Wifi, Toast.LENGTH_LONG).show()
              }
          } else {

              Toast.makeText(this, No Wifi Connection, Toast.LENGTH_LONG).show()
          }
      }
  }
Publicado 08/11/2018 em 06:45
fonte usuário
Em outras línguas...                            


2 respostas

votos
2

Você precisa adicionar um receptor, se você quiser ouvir mudança de status de conexão. Verifique o código abaixo -

@Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        checkWifiConnectionStatus();
        registerBroadCastReceiver();
    }


    private void registerBroadCastReceiver() {
        IntentFilter intentFilter = new IntentFilter();
        intentFilter.addAction(WifiManager.NETWORK_STATE_CHANGED_ACTION);
        registerReceiver(receiver, intentFilter);
    }

    private void checkWifiConnectionStatus() {
        WifiManager wifiMgr = (WifiManager) getApplicationContext().getSystemService(Context.WIFI_SERVICE);

        if (wifiMgr.isWifiEnabled()) {
            WifiInfo wifiInfo = wifiMgr.getConnectionInfo();

            if (wifiInfo.getNetworkId() == -1) {
                Toast.makeText(this, "Disconnected", Toast.LENGTH_SHORT).show();
                return;
            }
            Toast.makeText(this, "Connected", Toast.LENGTH_SHORT).show();
            return;
        } else {
            Toast.makeText(this, "Disconnected", Toast.LENGTH_SHORT).show();
            return;
        }
    }

    BroadcastReceiver receiver = new BroadcastReceiver() {
        @Override
        public void onReceive(Context context, Intent intent) {
            checkWifiConnectionStatus();
        }
    };
Respondeu 08/11/2018 em 08:32
fonte usuário

votos
0

Registar o receptor de transmissão dentro de sua atividade e dentro desse receptor monitorar o status de conexão pelo gerente de conectividade quando as mudanças de status da conexão chamar o método para realizar a sua tarefa.

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
       BroadcastReceiver  netReceiver = new BroadcastReceiver() {
            @Override
            public void onReceive(Context context, Intent intent) {
                ConnectivityManager cm = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);
                NetworkInfo activeNetwork = cm.getActiveNetworkInfo();
                boolean isConnected = activeNetwork != null && activeNetwork.isConnectedOrConnecting();
                if (isConnected) {
                    try {
                        performTask(isConnected);
                    } catch (Exception e) {
                        e.printStackTrace();
                    }
                } else {
                    performTask(isConnected);
                }
            }
        };
    }



public void performTask(boolean isConnected) {
    if (isConnected) {
        Log.i("test", "connection successfull");
    } else {
        Log.i("test", "connection failed");
    }
}

e adicione as seguintes permissões em menifest

<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<uses-permission android:name="android.permission.CHANGE_WIFI_STATE" />
<uses-permission android:name="android.permission.CHANGE_WIFI_MULTICAST_STATE" />
<uses-permission android:name="android.permission.CHANGE_NETWORK_STATE" />
Respondeu 08/11/2018 em 09:19
fonte usuário

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more