π Android Network Watcher (ConnectivityMonitor)
π Overview
Android Network Watcher is a lightweight Android utility class that provides easy-to-use network connectivity monitoring. It helps developers track network connection changes and determine the current network type with minimal setup.
β Features
- β‘ Real-time network connectivity monitoring
- π Supports multiple network types:
- πΆ WiFi
- π± Cellular
- π§ Ethernet
- π οΈ Compatible with Android versions from API level 23 and above
- π Simple callback mechanism for network state changes
- π Handles both network availability and type changes
π₯ Installation
Add the ConnectivityMonitor.kt file to your Android project's source directory.
Gradle Dependency
Add the following dependency to your build.gradle.kts file:
implementation("io.github.kdroidfilter:netwatcher:0.1.0")
π» Usage Example
class YourActivity : AppCompatActivity(), ConnectivityMonitor.ConnectivityListener {
private lateinit var connectivityMonitor: ConnectivityMonitor
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
connectivityMonitor = ConnectivityMonitor(this, this)
connectivityMonitor.startMonitoring()
}
// Implement the connectivity listener
override fun onNetworkConnectionChanged(isConnected: Boolean, networkType: ConnectivityMonitor.NetworkType) {
when {
isConnected -> {
when (networkType) {
ConnectivityMonitor.NetworkType.WIFI ->
println("Connected to WiFi")
ConnectivityMonitor.NetworkType.CELLULAR ->
println("Connected to Cellular Network")
ConnectivityMonitor.NetworkType.ETHERNET ->
println("Connected to Ethernet")
else -> println("Connected to Unknown Network")
}
}
else -> println("No network connection")
}
}
override fun onDestroy() {
connectivityMonitor.stopMonitoring()
super.onDestroy()
}
}
π οΈ Methods
π startMonitoring()
Begins monitoring network connectivity changes. Immediately triggers an initial callback with the current network state.
π stopMonitoring()
Stops monitoring network connectivity and unregisters the network callback.
π‘ Network Types
The library supports the following network types:
- πΆ
WIFI: WiFi network connection - π±
CELLULAR: Mobile data network - π§
ETHERNET: Ethernet network - π«
NONE: No network connection - β
UNKNOWN: Unrecognized network type
π Compatibility
- Minimum Android SDK: 23
βοΈ License
This project is licensed under the MIT License - see the LICENSE file for details.
π€ Contributing
Contributions are welcome! Please feel free to submit a Pull Request.