网络状态监听框架,从1.3版本开始支持LiveData监听
1、在根目录的build.gradle
里插入
allprojects {
repositories {
...
maven { url 'https://jitpack.io' }
}
}
2、在app的build.gradle
里插入
dependencies {
implementation 'com.github.D10NGYANG:NetStatusManager:1.6-RC01'
}
注意:版本1.6-RC01以后由于支持2G~5G的移动网络判断,需要先获取 Manifest.permission.READ_PHONE_STATE 权限;
推荐在Kotlin项目中使用这种方法。
DLNetManager.getInstance(this.application).getNetTypeLiveData().observe(this, Observer { str ->
// 网络状态改变
Log.e("测试", "Main网络状态改变:${str}")
//binding.netType = str
if (str == NetType.WIFI) {
if (NetUtils.is5GWifiConnected(this)) {
Log.e("测试", "这是5G WI-FI")
} else{
Log.e("测试", "这是2.4G WI-FI")
}
Log.e("测试", "WI-FI名:${NetUtils.getConnectedWifiSSID(this)}")
}
})
1、注册监听
override fun onStart() {
super.onStart()
DLNetManager.getInstance(this.application).register(this)
}
2、取消监听
override fun onStop() {
super.onStop()
DLNetManager.getInstance(this.application).unRegister(this)
}
3、取消监听所有
override fun onDestroy() {
DLNetManager.getInstance(this.application).unRegisterAll()
super.onDestroy()
}
4、监听状态变化
@DLNet
fun onNetStatusChange(str: @NetType String) {
// 网络状态改变
Log.e("测试", "Main网络状态改变:${str}")
//binding.netType = str
if (str == NetType.WIFI) {
if (NetUtils.is5GWifiConnected(this)) {
Log.e("测试", "这是5G WI-FI")
} else{
Log.e("测试", "这是2.4G WI-FI")
}
Log.e("测试", "WI-FI名:${NetUtils.getConnectedWifiSSID(this)}")
}
}
-keep class com.dlong.netstatus.** {*;}
-dontwarn com.dlong.netstatus.**
-keepclassmembers class * {
@com.dlong.netstatus.annotation.DLNet <methods>;
@com.dlong.netstatus.annotation.NetType <fields>;
}