Android Detect Internet Connection Status
It is better to check internet connectivity status before making any HTTP Requests to avoid http exceptions. This tutorial will explain how to detect internet connection status in your applications.
Create new Project
1. Create a new project in Eclipse IDE by filling required details. File ⇒ New ⇒ Android Project2. After creating new project first step is to add required permission in your AndroidManifest.xml file.
To access internet we need INTERNET Permission
To detect network status we need ACCESS_NETWORK_STATE Permission
<? xml version = "1.0" encoding = "utf-8" ?> package = "com.example.detectinternetconnection" android:versionCode = "1" android:versionName = "1.0" > < uses-sdk android:minSdkVersion = "8" /> < application android:icon = "@drawable/ic_launcher" android:label = "@string/app_name" > < activity android:name = ".AndroidDetectInternetConnectionActivity" android:label = "@string/app_name" > < intent-filter > < action android:name = "android.intent.action.MAIN" /> < category android:name = "android.intent.category.LAUNCHER" /> </ intent-filter > </ activity > </ application > <!-- Internet Permissions --> < uses-permission android:name = "android.permission.INTERNET" /> <!-- Network State Permissions --> < uses-permission android:name = "android.permission.ACCESS_NETWORK_STATE" /> </ manifest > |
package com.example.detectinternetconnection; import android.content.Context; import android.net.ConnectivityManager; import android.net.NetworkInfo; public class ConnectionDetector { private Context _context; public ConnectionDetector(Context context){ this ._context = context; } public boolean isConnectingToInternet(){ ConnectivityManager connectivity = (ConnectivityManager) _context.getSystemService(Context.CONNECTIVITY_SERVICE); if (connectivity != null ) { NetworkInfo[] info = connectivity.getAllNetworkInfo(); if (info != null ) for ( int i = 0 ; i < info.length; i++) if (info[i].getState() == NetworkInfo.State.CONNECTED) { return true ; } } return false ; } } |
ConnectionDetector cd = new ConnectionDetector(getApplicationContext()); Boolean isInternetPresent = cd.isConnectingToInternet(); // true or false |
6. Open your main.xml under res/layout folder and create a button.
<? xml version = "1.0" encoding = "utf-8" ?> android:layout_width = "fill_parent" android:layout_height = "fill_parent" android:orientation = "vertical" > < TextView android:layout_width = "fill_parent" android:layout_height = "wrap_content" android:text = "Detect Internet Status" /> < Button android:id = "@+id/btn_check" android:layout_height = "wrap_content" android:layout_width = "wrap_content" android:text = "Check Internet Status" android:layout_centerInParent = "true" /> </ RelativeLayout > |
package com.example.detectinternetconnection; import android.app.Activity; import android.app.AlertDialog; import android.content.Context; import android.content.DialogInterface; import android.os.Bundle; import android.view.View; import android.widget.Button; public class AndroidDetectInternetConnectionActivity extends Activity { // flag for Internet connection status Boolean isInternetPresent = false ; // Connection detector class ConnectionDetector cd; @Override public void onCreate(Bundle savedInstanceState) { super .onCreate(savedInstanceState); setContentView(R.layout.main); Button btnStatus = (Button) findViewById(R.id.btn_check); // creating connection detector class instance cd = new ConnectionDetector(getApplicationContext()); /** * Check Internet status button click event * */ btnStatus.setOnClickListener( new View.OnClickListener() { @Override public void onClick(View v) { // get Internet status isInternetPresent = cd.isConnectingToInternet(); // check for Internet status if (isInternetPresent) { // Internet Connection is Present // make HTTP requests showAlertDialog(AndroidDetectInternetConnectionActivity. this , "Internet Connection" , "You have internet connection" , true ); } else { // Internet connection is not present // Ask user to connect to Internet showAlertDialog(AndroidDetectInternetConnectionActivity. this , "No Internet Connection" , "You don't have internet connection." , false ); } } }); } /** * Function to display simple Alert Dialog * @param context - application context * @param title - alert dialog title * @param message - alert message * @param status - success/failure (used to set icon) * */ public void showAlertDialog(Context context, String title, String message, Boolean status) { AlertDialog alertDialog = new AlertDialog.Builder(context).create(); // Setting Dialog Title alertDialog.setTitle(title); // Setting Dialog Message alertDialog.setMessage(message); // Setting alert dialog icon alertDialog.setIcon((status) ? R.drawable.success : R.drawable.fail); // Setting OK Button alertDialog.setButton( "OK" , new DialogInterface.OnClickListener() { public void onClick(DialogInterface dialog, int which) { } }); // Showing Alert Message alertDialog.show(); } } |
No comments:
Post a Comment