đ Connectivity Manager - āϏāĻšāĻ āĻাāώাāϝ় āĻŦোāĻাāϰ āĻāύ্āϝ āĻাāĻāĻĄ (āĻŦাংāϞাāϝ়) (Kotlin Version)
đ Connectivity Manager - āϏāĻšāĻ āĻাāώাāϝ় āĻŦোāĻাāϰ āĻāύ্āϝ āĻাāĻāĻĄ (āĻŦাংāϞাāϝ়) (Kotlin Version)
Connectivity Manager āĻšāϞো Android-āĻāϰ āύেāĻāĻāϝ়াāϰ্āĻ āϏংāϝোāĻ āύিā§āύ্āϤ্āϰāĻŖ āĻ āĻĒāϰ্āϝāĻŦেāĻ্āώāĻŖেāϰ āĻāύ্āϝ āĻāĻāĻি āĻুāϰুāϤ্āĻŦāĻĒূāϰ্āĻŖ āϏাāϰ্āĻিāϏ। āϏāĻšāĻ āĻাāώাāϝ় āĻŦāϞāϞে, āĻāĻি āĻāĻĒāύাāϰ āĻĄিāĻাāĻāϏে āĻāύ্āĻাāϰāύেāĻ āĻāĻে āĻিāύা, āĻŽোāĻŦাāĻāϞ āĻĄাāĻা āύাāĻি Wi-Fi āĻাāϞু āĻāĻে, āύেāĻāĻāϝ়াāϰ্āĻেāϰ āϧāϰāύ āĻী—āĻāĻ āϏāĻŦāĻিāĻু āĻেāĻ āĻ āĻŽ্āϝাāύেāĻ āĻāϰāϤে āϏাāĻšাāϝ্āϝ āĻāϰে।
đ Connectivity Manager āĻী āĻāϰে?
✅ āĻāύ্āĻাāϰāύেāĻ āϏংāϝোāĻ āĻāĻে āĻিāύা āĻেāĻ āĻāϰে
✅ Wi-Fi, āĻŽোāĻŦাāĻāϞ āĻĄাāĻা, VPN āĻāϤ্āϝাāĻĻি āĻেāĻ āĻ āϏুāĻāĻ āĻāϰāϤে āϏাāĻšাāϝ্āϝ āĻāϰে
✅ āύেāĻāĻāϝ়াāϰ্āĻেāϰ āϧāϰāύ (4G, 5G, Wi-Fi) āĻেāĻ āĻāϰা āϝাā§
✅ āύেāĻāĻāϝ়াāϰ্āĻ āĻĒāϰিāĻŦāϰ্āϤāύ āĻšāϞে āĻ
āĻোāĻŽেāĻিāĻ āύোāĻিāĻĢাāĻ āĻāϰে
✅ āĻāύ্āĻাāϰāύেāĻ āϏ্āϞো āύাāĻি āĻĢাāϏ্āĻ, āϏেāĻাāĻ āĻĒāϰোāĻ্āώāĻাāĻŦে āĻেāĻ āĻāϰা āϏāĻŽ্āĻāĻŦ
đ Connectivity Manager āĻŦ্āϝāĻŦāĻšাāϰ āĻāϰাāϰ āĻāĻĒাāϝ়
1️⃣ āĻĒ্āϰāĻĨāĻŽে āĻĒাāϰāĻŽিāĻļāύ āĻĻিāύ
Connectivity āϏংāĻ্āϰাāύ্āϤ āϤāĻĨ্āϝ āĻĒেāϤে AndroidManifest.xml āĻĢাāĻāϞে āύিāĻেāϰ āĻĒাāϰāĻŽিāĻļāύ āϝোāĻ āĻāϰুāύ:
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
<uses-permission android:name="android.permission.INTERNET"/>
đ āĻেāύ āĻĻāϰāĻাāϰ?
✔ ACCESS_NETWORK_STATE → āύেāĻāĻāϝ়াāϰ্āĻ āϏংāϝোāĻ āϏāĻŽ্āĻĒāϰ্āĻে āϤāĻĨ্āϝ āĻĒেāϤে
✔ INTERNET → āĻāύ্āĻাāϰāύেāĻ āĻŦ্āϝāĻŦāĻšাāϰেāϰ āĻ
āύুāĻŽāϤি āĻĻিāϤে
2️⃣ ConnectivityManager āĻ āĻŦāĻেāĻ্āĻ āϤৈāϰি āĻāϰুāύ
Connectivity āϏংāĻ্āϰাāύ্āϤ āϤāĻĨ্āϝ āĻĒেāϤে āύিāĻেāϰ āĻŽāϤো ConnectivityManager āĻ āĻŦāĻেāĻ্āĻ āĻŦ্āϝāĻŦāĻšাāϰ āĻāϰāϤে āĻšāĻŦে:
val connectivityManager = getSystemService(Context.CONNECTIVITY_SERVICE) as ConnectivityManager
đ āĻāĻি āĻী āĻāϰāĻŦে?
✔ āĻāĻি āĻāĻĒāύাāϰ āĻĄিāĻাāĻāϏেāϰ āύেāĻāĻāϝ়াāϰ্āĻ āϏংāĻ্āϰাāύ্āϤ āϏāĻāϞ āϤāĻĨ্āϝ āĻ
্āϝাāĻ্āϏেāϏ āĻāϰāϤে āϏাāĻšাāϝ্āϝ āĻāϰāĻŦে ✅
3️⃣ āĻāύ্āĻাāϰāύেāĻ āϏংāϝোāĻ āĻāĻে āĻি āύা āĻেāĻ āĻāϰা
āĻāĻŽāϰা āĻেāĻ āĻāϰāϤে āĻĒাāϰি āϝে āĻĢোāύে āĻāύ্āĻাāϰāύেāĻ āϏংāϝোāĻ āĻāĻে āĻিāύা āĻāĻ āĻĒāĻĻ্āϧāϤিāϤে:
fun isInternetAvailable(context: Context): Boolean {
val connectivityManager = context.getSystemService(Context.CONNECTIVITY_SERVICE) as ConnectivityManager
val networkInfo = connectivityManager.activeNetworkInfo
return networkInfo != null && networkInfo.isConnected
}
đ āĻāĻি āĻী āĻāϰāĻŦে?
✔ āϝāĻĻি āĻāύ্āĻাāϰāύেāĻ āĻাāϞু āĻĨাāĻে, āϤাāĻšāϞে true āϰিāĻাāϰ্āύ āĻāϰāĻŦে
✔ āϝāĻĻি āĻāύ্āĻাāϰāύেāĻ āĻŦāύ্āϧ āĻĨাāĻে, āϤাāĻšāϞে false āϰিāĻাāϰ্āύ āĻāϰāĻŦে
4️⃣ āĻŦāϰ্āϤāĻŽাāύে āĻোāύ āύেāĻāĻāϝ়াāϰ্āĻ āϏংāϝোāĻ āĻাāϞু āĻāĻে? (Wi-Fi āύা āĻŽোāĻŦাāĻāϞ āĻĄাāĻা?)
fun getNetworkType(context: Context): String {
val connectivityManager = context.getSystemService(Context.CONNECTIVITY_SERVICE) as ConnectivityManager
val networkInfo = connectivityManager.activeNetworkInfo
return when {
networkInfo != null && networkInfo.isConnected -> {
when (networkInfo.type) {
ConnectivityManager.TYPE_WIFI -> "Wi-Fi"
ConnectivityManager.TYPE_MOBILE -> "Mobile Data"
else -> "Unknown"
}
}
else -> "No Internet"
}
}
đ āĻāĻি āĻী āĻāϰāĻŦে?
✔ āĻŦāϞāĻŦে āĻāĻĒāύি Wi-Fi āĻŦ্āϝāĻŦāĻšাāϰ āĻāϰāĻেāύ āύাāĻি āĻŽোāĻŦাāĻāϞ āĻĄাāĻা ✅
5️⃣ āύেāĻāĻāϝ়াāϰ্āĻ āĻĒāϰিāĻŦāϰ্āϤāύ āĻĄিāĻেāĻ্āĻ āĻāϰা (Live Monitoring)
Android 7.0 (API 24+) āĻĨেāĻে NetworkCallback API āĻāϏেāĻে, āϝা āύেāĻāĻāϝ়াāϰ্āĻ āĻĒāϰিāĻŦāϰ্āϤāύ āĻšāϞে āϏাāĻĨে āϏাāĻĨে āĻাāύিāϝ়ে āĻĻেāϝ়।
val connectivityManager = getSystemService(Context.CONNECTIVITY_SERVICE) as ConnectivityManager
val networkRequest = NetworkRequest.Builder().build()
connectivityManager.registerNetworkCallback(networkRequest, object : ConnectivityManager.NetworkCallback() {
override fun onAvailable(network: Network) {
Log.d("Network Status", "Internet Connected")
}
override fun onLost(network: Network) {
Log.d("Network Status", "Internet Disconnected")
}
})
đ āĻāĻি āĻী āĻāϰāĻŦে?
✔ āϝāĻĻি āύেāĻāĻāϝ়াāϰ্āĻ āϏংāϝোāĻ āĻāϏে, āϤাāĻšāϞে onAvailable() āĻŽেāĻĨāĻĄ āĻāϞāĻŦে
✔ āϝāĻĻি āύেāĻāĻāϝ়াāϰ্āĻ āĻāϞে āϝাāϝ়, āϤাāĻšāϞে onLost() āĻŽেāĻĨāĻĄ āĻāϞāĻŦে
đ Connectivity Manager āĻĻিā§ে āĻী āĻী āĻāϰা āϏāĻŽ্āĻāĻŦ?
✅ āĻāύ্āĻাāϰāύেāĻ āϏংāϝোāĻ āĻāĻে āĻি āύা āĻেāĻ āĻāϰা
✅ Wi-Fi, āĻŽোāĻŦাāĻāϞ āĻĄাāĻা āĻāϞāĻে āĻিāύা āύিāϰ্āϧাāϰāĻŖ āĻāϰা
✅ āύেāĻāĻāϝ়াāϰ্āĻ āĻĒāϰিāĻŦāϰ্āϤāύ āĻšāϞে āϏাāĻĨে āϏাāĻĨে āĻাāύāϤে āĻĒাāϰা
✅ āĻāύ্āĻাāϰāύেāĻ āϏ্āϞো āύাāĻি āĻĢাāϏ্āĻ, āϏেāĻাāϰ āϧাāϰāĻŖা āĻĒাāĻāϝ়া
⚠ āϏāϤāϰ্āĻāϤা
đ´ Android 9 (Pie) āĻĨেāĻে āĻĄাāĻা āĻ
āύ/āĻ
āĻĢ āĻāϰাāϰ API āĻŦ্āϞāĻ āĻāϰা āĻšāϝ়েāĻে
đ´ Android 10+ āĻ IMEI āĻŦা Mac Address āĻ
্āϝাāĻ্āϏেāϏ āϏীāĻŽিāϤ āĻāϰা āĻšāϝ়েāĻে
đ´ ACCESS_NETWORK_STATE āĻĒাāϰāĻŽিāĻļāύ āύা āĻĨাāĻāϞে āĻিāĻু āĻĢিāĻাāϰ āĻাāĻ āĻāϰāĻŦে āύা
đ¯ āĻļেāώ āĻāĻĨা
Connectivity Manager āĻšāϞো āĻāĻŽāύ āĻāĻāĻি āϏিāϏ্āĻেāĻŽ āϏাāϰ্āĻিāϏ, āϝা āύেāĻāĻāϝ়াāϰ্āĻ āϏংāĻ্āϰাāύ্āϤ āϝাāĻŦāϤীāϝ় āϤāĻĨ্āϝ āĻ āĻāύ্āĻ্āϰোāϞ āĻŽ্āϝাāύেāĻ āĻāϰāϤে āϏাāĻšাāϝ্āϝ āĻāϰে।
đĄ āĻীāĻাāĻŦে āĻāĻি āĻŦ্āϝāĻŦāĻšাāϰ āĻāϰāĻŦেāύ?
✔ ConnectivityManager āĻ
āĻŦāĻেāĻ্āĻ āϤৈāϰি āĻāϰুāύ
✔ āĻāύ্āĻাāϰāύেāĻ āϏংāϝোāĻ āĻেāĻ āĻāϰুāύ (isInternetAvailable())
✔ āύেāĻāĻāϝ়াāϰ্āĻেāϰ āϧāϰāύ āĻেāĻ āĻāϰুāύ (getNetworkType())
✔ āύেāĻāĻāϝ়াāϰ্āĻ āĻĒāϰিāĻŦāϰ্āϤāύ āĻšāϞে āϏেāĻি āĻĄিāĻেāĻ্āĻ āĻāϰুāύ (registerNetworkCallback())
āĻāĻি āĻŦ্āϝāĻŦāĻšাāϰ āĻāϰে āĻāĻĒāύি āϏ্āĻŽাāϰ্āĻ āύেāĻāĻāϝ়াāϰ্āĻ-āĻŦেāϏāĻĄ āĻ ্āϝাāĻĒ āĻĄেāĻেāϞāĻĒ āĻāϰāϤে āĻĒাāϰāĻŦেāύ! đđĨ
Comments
Post a Comment