AndroidNetworkMonitor
Android 全局網絡變化監聽
How to
To get a Git project into your build:
Step 1. Add the JitPack repository to your build file
Add it in your root build.gradle at the end of repositories:
allprojects {
repositories {
...
maven { url 'https://jitpack.io' }
}
}
Step 2. Add the dependency
dependencies {
implementation 'com.github.kongqw:NetworkMonitor:1.0.1'
}
使用
初始化
在Application
中初始化
NetworkMonitorManager.getInstance().init(this)
註冊與反註冊
在需要監聽網絡狀態的頁面進行註冊與反註冊
NetworkMonitorManager.getInstance().register(this)
NetworkMonitorManager.getInstance().unregister(this)
監聽網絡狀態變化
@NetworkMonitor
fun onNetWorkStateChange(networkState: NetworkState) {
when (networkState) {
NetworkState.NONE -> {
// TODO 暫無網絡
}
NetworkState.WIFI -> {
// TODO WIFI網絡
}
NetworkState.CELLULAR -> {
// TODO 蜂窩網絡
}
}
}
也可以監聽指定網絡狀態,例如
@NetworkMonitor(monitorFilter = [NetworkState.NONE])
fun onNetWorkStateChangeNONE(networkState: NetworkState) {
// TODO 網絡斷開時回調
}
@NetworkMonitor(monitorFilter = [NetworkState.WIFI])
fun onNetWorkStateChange1(networkState: NetworkState) {
// TODO WIFI連接上的時候回調
}
@NetworkMonitor(monitorFilter = [NetworkState.WIFI, NetworkState.CELLULAR])
fun onNetWorkStateChange2(networkState: NetworkState) {
// TODO 連接上WIFI或蜂窩網絡的時候回調
}
判斷當前是否有網絡連接
val hasNetworkCapability: Boolean = NetworkStateUtils.hasNetworkCapability(applicationContext)
獲取當前的網絡狀態
val networkState: NetworkState = NetworkStateUtils.getNetworkState(applicationContext)
混淆
-keepattributes *Annotation*
-keepclassmembers class * {
@com.kongqw.network.monitor.interfaces.NetworkMonitor <methods>;
}
-keep class com.kongqw.network.monitor.** { *; }