Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to check the Internet Connection periodically in whole application?

Tags:

android

I am doing a application which uses the Internet Connection through out the application. If the internet connection is lost while using the application, the application is forcibly closing. To avoid this, if internet is not available i want to show a Alert message. How can i do this. At the time of Login i am checking the connectivity using the below code. But how can i do this for whole application in background.

private boolean haveInternet(){
        NetworkInfo info = ((ConnectivityManager)getSystemService(Context.CONNECTIVITY_SERVICE)).getActiveNetworkInfo();
        if (info==null || !info.isConnected()) {
                return false;
        }
        if (info.isRoaming()) {
                // here is the roaming option you can change it if you want to disable internet while roaming, just return false
                return true;
        }
        return true;
}

Thank you..

like image 620
wolverine Avatar asked Apr 27 '12 12:04

wolverine


People also ask

How do I test my internet connection continuously?

To check internet connectivity simply register the broadcast for CONNECTIVITY_CHANGE and WIFI_STATE_CHANGED. So whenever internet is connected or disconnected event occurs onReceive method of our BroadcastReceiver gets called where we can write our logic. In NetworkChangeReceiver class.


1 Answers

You should make an BroadcastReceiver that will be triggered when the connectivity status has changed :

     public class BroadCastSampleActivity extends Activity {
    /** Called when the activity is first created. */
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        // TODO Auto-generated method stub
        super.onCreate(savedInstanceState);
        this.registerReceiver(this.mConnReceiver,
                new IntentFilter(ConnectivityManager.CONNECTIVITY_ACTION));
    }
    private BroadcastReceiver mConnReceiver = new BroadcastReceiver() {
        public void onReceive(Context context, Intent intent) {
            boolean noConnectivity = intent.getBooleanExtra(ConnectivityManager.EXTRA_NO_CONNECTIVITY, false);
            String reason = intent.getStringExtra(ConnectivityManager.EXTRA_REASON);
            boolean isFailover = intent.getBooleanExtra(ConnectivityManager.EXTRA_IS_FAILOVER, false);

            NetworkInfo currentNetworkInfo = (NetworkInfo) intent.getParcelableExtra(ConnectivityManager.EXTRA_NETWORK_INFO);
            NetworkInfo otherNetworkInfo = (NetworkInfo) intent.getParcelableExtra(ConnectivityManager.EXTRA_OTHER_NETWORK_INFO);

            if(currentNetworkInfo.isConnected()){
                Toast.makeText(getApplicationContext(), "Connected", Toast.LENGTH_LONG).show();
            }else{
                Toast.makeText(getApplicationContext(), "Not Connected", Toast.LENGTH_LONG).show();
            }
        }
    };
}

and then in your AndroidManifest you can check if you have connectivity:

    <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />

Download source code - here

like image 150
Parag Chauhan Avatar answered Oct 22 '22 04:10

Parag Chauhan