Check Network Status - Android Studio - Java
How to check Network Connection Status
In this tutorial, you will learn how to detect the type of internet connection in an Android app using Java. We will check whether the device has no internet connection, is connected through Wi-Fi, or is using Mobile Data. This is a common feature in modern Android applications to improve user experience and handle offline scenarios smoothly.
By the end of this guide, you’ll understand how to access the Android network services, detect connection status programmatically, and display meaningful messages to users based on their connectivity state.
Code:
AndroidManifest.xml
<?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools"> <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> <application android:allowBackup="true" android:dataExtractionRules="@xml/data_extraction_rules" android:fullBackupContent="@xml/backup_rules" android:icon="@mipmap/ic_launcher" android:label="@string/app_name" android:roundIcon="@mipmap/ic_launcher_round" android:supportsRtl="true" android:theme="@style/Theme.MyApplication"> <activity android:name=".MainActivity" android:exported="true"> <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> </application> </manifest>
activity_main.xml
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:gravity="center" android:orientation="vertical" android:padding="20dp" tools:context=".MainActivity"> <!--network status icon--> <ImageView android:id="@+id/conStatusIv" android:layout_width="120dp" android:layout_height="120dp" android:scaleType="fitXY" android:src="@drawable/ic_action_no" android:tint="?attr/colorPrimary" /> <!--network status text--> <TextView android:id="@+id/conStatusTv" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginVertical="10dp" android:text="No internet connection" android:textAlignment="center" android:textColor="#000" android:textSize="20sp" /> <!--button to check network status--> <com.google.android.material.button.MaterialButton android:id="@+id/conStatusBtn" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Check Network" /> </LinearLayout>
MainActivity.java
package com.technifysoft.myapplication; import android.content.Context; import android.net.ConnectivityManager; import android.net.Network; import android.net.NetworkCapabilities; import android.os.Bundle; import android.view.View; import android.widget.Button; import android.widget.ImageView; import android.widget.TextView; import androidx.appcompat.app.AppCompatActivity; public class MainActivity extends AppCompatActivity { //Views ImageView mConStatusIv; TextView mConStatusTv; Button mConStatusBtn; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); //link views with xml mConStatusIv = findViewById(R.id.conStatusIv); mConStatusTv = findViewById(R.id.conStatusTv); mConStatusBtn = findViewById(R.id.conStatusBtn); //button click to check network status mConStatusBtn.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { //function call to check network connection status checkNetworkConnectionStatus(); } }); } private void checkNetworkConnectionStatus() { ConnectivityManager connectivityManager = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE); Network network = connectivityManager.getActiveNetwork(); NetworkCapabilities capabilities = connectivityManager.getNetworkCapabilities(network); if (capabilities != null) { if (capabilities.hasTransport(NetworkCapabilities.TRANSPORT_WIFI)) { //wifi connected mConStatusIv.setImageResource(R.drawable.ic_action_wifi); mConStatusTv.setText("Connected with Wifi"); } else if (capabilities.hasTransport(NetworkCapabilities.TRANSPORT_CELLULAR)) { //mobile data connected mConStatusIv.setImageResource(R.drawable.ic_action_mobile); mConStatusTv.setText("Connected with Mobile Data Connection"); } } else { //no internet connection mConStatusIv.setImageResource(R.drawable.ic_action_no); mConStatusTv.setText("No internet connection"); } } }

Comments
Post a Comment