Check for Active internet connection Android

前端 未结 7 1568
不知归路
不知归路 2020-11-27 05:26

I am trying to write a part in my app that will differentiate between an Active Wifi connection and an actual connection to the internet. Finding out if there is an active

相关标签:
7条回答
  • 2020-11-27 05:54

    Query a website like this:

    Make your class implement AsyncTaskCompleteListenere<Boolean> by adding the following method to your class:

    @Override
    public void onTaskComplete(Boolean result) {
        Toast.makeText(getApplicationContext(), "URL Exist:" + result, Toast.LENGTH_LONG).show();
       // continue your job
    }
    

    Add a simple testConnection method to your class to be called when you want to check for your connectivity:

    public void testConnection() {
            URLExistAsyncTask task = new URLExistAsyncTask(this);
            String URL = "http://www.google.com";
            task.execute(new String[]{URL});
        }
    

    And finally the URLExistAsyncTask class which perform the connectivity test as an asynchronous (background) task and calls back your onTaskComplete method once done:

      public class URLExistAsyncTask extends AsyncTask<String, Void, Boolean> {
            AsyncTaskCompleteListenere<Boolean> callback;
    
            public URLExistAsyncTask(AsyncTaskCompleteListenere<Boolean> callback) {
                this.callback = callback;
            }
    
            protected Boolean doInBackground(String... params) {
                int code = 0;
                try {
                    URL u = new URL(params[0]);
                    HttpURLConnection huc = (HttpURLConnection) u.openConnection();
                    huc.setRequestMethod("GET");
                    huc.connect();
                    code = huc.getResponseCode();
                } catch (IOException e) {
                    return false;
                } catch (Exception e) {
                    return false;
                }
    
                return code == 200;
            }
    
            protected void onPostExecute(Boolean result){
                  callback.onTaskComplete(result);
            }
        }
    
    0 讨论(0)
提交回复
热议问题