Android监听网络变化时的bug

  最近在做监听网络变化改变视频播放码率的功能,涉及到了Android网络变化监听,我采用了动态广播监听网络变化,在使用过程中发现了一些问题。

  1. 当开启VoLTE高清通话时,getAllNetworks()方法中会存在一个ims的network,并且在只开启数据网络的时候,会返回ims和我们正在使用的接入点这2个network,当同时开启wifi和数据网络时,只返回ims和wifi这2个network,只开启wifi时,也会返回ims和wifi 2个network,将wifi和数据网络都关闭,也会返回一个ims的network,这个问题导致了1.无法正确判断当前是否已开启数据网络。2. 无法正确判断当前是否无任何网络连接。


2. 一开始我使用getActiveNetworkInfo(),使用这个方法可以排除1中描述的无法正确判断当前是否已开启数据网络的问题,但在同时开启wifi和数据网络的情况下,关闭wifi,再次调用getActiveNetworkInfo()返回为null,导致1中的第二个问题,无法正确判断是否无任何网络连接仍然存在。


因为身边只有一台自用的红米note4x,目前无法判断是小米手机的问题还是Android自身的问题,现阶段的解决方案是正常使用getActiveNetworkInfo()判断网络变化情况,但在返回为null的情况下延迟一秒的时间再次调用getActiveNetworkInfo()是否null,仍然为null表示无任何网络连接,不为null则判断是否是数据网络。


ps: 当wifi和数据网络都开启时,单独关闭打开数据网络无法接收到网络变化的广播。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值