Check Network Status - Android Studio - Kotlin
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.kt
package com.technifysoft.myapplication import android.content.Context import android.net.ConnectivityManager import android.net.NetworkCapabilities import android.os.Bundle import android.widget.Button import android.widget.ImageView import android.widget.TextView import androidx.appcompat.app.AppCompatActivity class MainActivityKt : AppCompatActivity() { //Views private lateinit var mConStatusIv: ImageView private lateinit var mConStatusTv: TextView private lateinit var mConStatusBtn: Button override fun onCreate(savedInstanceState: Bundle?) { 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 { //function call to check network connection status checkNetworkConnectionStatus() } } private fun checkNetworkConnectionStatus() { val connectivityManager = getSystemService(Context.CONNECTIVITY_SERVICE) as ConnectivityManager val network = connectivityManager.activeNetwork val capabilities = connectivityManager.getNetworkCapabilities(network) if (capabilities != null) { when { capabilities.hasTransport(NetworkCapabilities.TRANSPORT_WIFI) -> { //wifi connected mConStatusIv.setImageResource(R.drawable.ic_action_wifi) mConStatusTv.text = "Connected with Wifi" } capabilities.hasTransport(NetworkCapabilities.TRANSPORT_CELLULAR) -> { //mobile data connected mConStatusIv.setImageResource(R.drawable.ic_action_mobile) mConStatusTv.text = "Connected with Mobile Data Connection" } } } else { //no internet connection mConStatusIv.setImageResource(R.drawable.ic_action_no) mConStatusTv.text = "No internet connection" } } }

Comments
Post a Comment