Search code examples
javaandroidnetworkingandroid-networking

Network listener Android


I want to check when the network of phone in Android goes off. Can I capture that event?

I am not getting the proper API or any example which would explain the same. If anyone had done or any example links would be really helpful.


Solution

  • New java class:

    public class ConnectionChangeReceiver extends BroadcastReceiver
    {
      @Override
      public void onReceive( Context context, Intent intent )
      {
        ConnectivityManager connectivityManager = (ConnectivityManager) context.getSystemService( Context.CONNECTIVITY_SERVICE );
        NetworkInfo activeNetInfo = connectivityManager.getActiveNetworkInfo();
        NetworkInfo mobNetInfo = connectivityManager.getNetworkInfo(     ConnectivityManager.TYPE_MOBILE );
        if ( activeNetInfo != null )
        {
          Toast.makeText( context, "Active Network Type : " + activeNetInfo.getTypeName(), Toast.LENGTH_SHORT ).show();
        }
        if( mobNetInfo != null )
        {
          Toast.makeText( context, "Mobile Network Type : " + mobNetInfo.getTypeName(), Toast.LENGTH_SHORT ).show();
        }
      }
    }
    

    New xml in your AndroidManifest.xml under the "manifest" element:

    <!-- Needed to check when the network connection changes -->
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
    

    New xml in your AndroidManifest.xml under the "application" element:

    <receiver android:name="com.blackboard.androidtest.receiver.ConnectionChangeReceiver"
              android:label="NetworkConnection">
      <intent-filter>
        <action android:name="android.net.conn.CONNECTIVITY_CHANGE"/>
      </intent-filter>
    </receiver>