安卓实现判断手机网络连接状态是否联网,连接的是移动流量数据还是WIFI连接

安卓实现判断手机网络连接状态是否联网,连接的是移动流量数据还是WIFI连接

开门见山地说,安卓APP在实际开发应用场景中很容易遇到需要判断网络连接状态的需求,毕竟对于手机APP来说,没有网络的情况并不稀奇,可往往这种时候,用户并不知道是自己手机网络的问题,一般会默认觉得这APP怎么这么慢,那么这个时候,作为一个合格的甩锅人,当然是得想办法让用户知道锅不在我们开发人员的身上(理直气壮)!那么就需要有一个合适的方式来实现这个功能。
上代码:

/**
	 * @Title: isNetworkConnected
	 * @Description: 网络是否可用
	 * @param @param context
	 * @param @return
	 * @return boolean
	 */
	public static boolean isNetworkConnected(Context context) {
		ConnectivityManager cm = (ConnectivityManager) context
				.getSystemService(Context.CONNECTIVITY_SERVICE);
		NetworkInfo[] info = cm.getAllNetworkInfo();
		if (info != null) {
			for (int i = 0; i < info.length; i++) {
				if (info[i].getState() == NetworkInfo.State.CONNECTED) {
					return true;
				} else {
					continue;
				}
			}
		}
		return false;
	}

调用时:

if(!ConnectUtil.isNetworkConnected(context))
		{
			Toast.makeText(context, "检测不到可用的网络连接", Toast.LENGTH_LONG).show();
			
		}

通过上图的代码我们就可以对APP网络状态能否使用做出一个判断,但是但是,对手机网络状态的监听是需要在APP整个生命周期里去监听的,不可能去调像上面一样就调个方法就搞定的,所以我们需要是要开启一个整个生命周期的网络检测的服务,使得在APP使用的过程中当网络出现问题时就能弹出提示,这样的处理才能让用户给你打好评,嘿嘿!
所以我们就需要在AndroidManifest.xml中去加入一个网络检测服务。

  <!-- 网络监测服务 -->
        <service android:name="//这里网络服务的代码" >
            <intent-filter>
                <action android:name="//这里网络服务的代码" />
            </intent-filter>
        </service>

那么具体详细的完整代码我放在下面的链接里面,大家可以下载来看,里面都有详细的注释的。此外代码里还含有对网络连接方式是移动流量还是WIFI连接的判断,毕竟如果你做的是一个视频类的手机应用,视频播放前不提示用户用WIFI播放,等到最后给用户一个惊喜的话,相信用户也会给到你一个惊吓的。

安卓实现网络情况监测,网络连接是否有效,判断移动网络还是WIFI

以上就是本篇博客的全部内容,希望大家能够给与支持,谢谢!

参与评论 您还未登录,请先 登录 后发表或查看评论

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

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
©️2022 CSDN 皮肤主题:书香水墨 设计师:CSDN官方博客 返回首页

打赏作者

LeeBrook0

你的鼓励将是我创作的最大动力

¥2 ¥4 ¥6 ¥10 ¥20
输入1-500的整数
余额支付 (余额:-- )
扫码支付
扫码支付:¥2
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值