2017-10-28 6 views
0

Ich habe mit der Android-Entwicklung herumgeknobelt und ich habe Probleme, zu überprüfen, ob es eine AKTIVE Internetverbindung gibt, selbst wenn das Netz eingeschaltet ist.Überprüfen, ob es eine aktive Internetverbindung gibt

Da manchmal, obwohl Sie mit dem WIFI oder DATA verbunden sind, gibt es Zeiten gibt es keine Verbindung.

Jedes Mal, wenn ich auf den Button klicke, stürzt meine App ab. Ich bin immer noch ein Anfänger in Bezug auf boolesche Methoden.

Vielen Dank für jede Hilfe im Voraus und wenn ihr irgend besserer Möglichkeiten denkt ich, könnte diesen Ansatz wäre ich dankbar: D

Das ist mein Mainactivity:

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

btnCheck = (Button) findViewById(R.id.btnCheck); 

    btnCheck.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View v) { 

      if (isInternetAvailable()){ 
       Toast.makeText(MainActivity.this, "There is a connection", Toast.LENGTH_SHORT).show(); 
      } 
      else{ 
       Toast.makeText(MainActivity.this, "NO connection", Toast.LENGTH_SHORT).show(); 
      } 

     } 
    }); 

} 

public boolean isInternetAvailable() { 
    try { 
     int timeoutMs = 1500; 
     Socket sock = new Socket(); 
     SocketAddress sockaddr = new InetSocketAddress("8.8.8.8", 80); 

     sock.connect(sockaddr, timeoutMs); 
     sock.close(); 

     return true; 
    } catch (IOException e) { return false; } 

} 

Antwort

0

Versuch unter Code

Boolean isInternetPresent = false; 
    ConnectionDetector cd; 

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

    btnCheck = (Button) findViewById(R.id.btnCheck); 

    btnCheck.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View v) { 


      cd = new ConnectionDetector(getApplicationContext()); 
      isInternetPresent = cd.isConnectingToInternet(); 

      if (isInternetPresent) { 

       Toast.makeText(MainActivity.this, "There is a connection", Toast.LENGTH_SHORT).show(); 

      }else { 

       Toast.makeText(MainActivity.this, "NO connection", Toast.LENGTH_SHORT).show(); 

       } 

      } 
     }); 

    } 

auch vergessen Sie nicht, Internet-Berechtigung in Manifest-Datei hinzuzufügen.

Verwandte Themen