Android 检测网络状态的工具类
package com.sun.androidstudy.utils;
import android.content.Context;
import android.net.ConnectivityManager;
import android.net.NetworkInfo;
import android.net.Uri;
import android.net.NetworkInfo.State;
import android.telephony.TelephonyManager;
import android.util.Log;
public class NetWorkHelper {
public static final int NETWORN_NONE = 0;
public static final int NETWORN_WIFI = 1;
public static final int NETWORN_MOBILE = 2;
private static String TAG = "NetWorkHelper";
public static Uri uri = Uri.parse("content://telephony/carriers");
/**
* 判断是否有网络
* @param context
* @return
*/
public static boolean isNetworkAvailable(Context context) {
ConnectivityManager connectivity = (ConnectivityManager) context
.getSystemService(Context.CONNECTIVITY_SERVICE);
if (connectivity == null) {
Log.w(TAG, "couldn't get connectivity manager");
} else {
NetworkInfo[] info = connectivity.getAllNetworkInfo();
if (info != null) {
for (int i = 0; i < info.length; i++) {
if (info[i].isAvailable()) {
Log.d(TAG, "network is available");
return true;
}
}
}
}
Log.d(TAG, "network is not available");
return false;
}
/**
* 检查网络状态 
* @param context
* @return
*/
public static boolean checkNetState(Context context) {
boolean netstate = false;
ConnectivityManager connectivity = (ConnectivityManager) context
.getSystemService(Context.CONNECTIVITY_SERVICE);
if (connectivity != null) {
NetworkInfo[] info = connectivity.getAllNetworkInfo();
if (info != null) {
for (int i = 0; i < info.length; i++) {
if (info[i].getState() == NetworkInfo.State.CONNECTED) {
netstate = true;
break;
}
}
}
}
return netstate;
}
/**
* 判断网络是否为漫游
* @param context
* @return
*/
public static boolean isNetworkRoaming(Context context) {
ConnectivityManager connectivity = (ConnectivityManager) context
.getSystemService(Context.CONNECTIVITY_SERVICE);
if (connectivity == null) {
Log.w(TAG, "couldn't get connectivity manager");
} else {
NetworkInfo info = connectivity.getActiveNetworkInfo();
if (info != null
&& info.getType() == ConnectivityManager.TYPE_MOBILE) {
TelephonyManager tm = (TelephonyManager) context
.getSystemService(Context.TELEPHONY_SERVICE);
if (tm != null && tm.isNetworkRoaming()) {
Log.d(TAG, "network is roaming");
return true;
} else {
Log.d(TAG, "network is not roaming");
}
} else {
Log.d(TAG, "not using mobile network");
}
}
return false;
}
/**
* 判断MOBILE网络是否可用
* @param context
* @return
*/
public static boolean isMobileDataEnable(Context context) {
ConnectivityManager connectivityManager = (ConnectivityManager) context
.getSystemService(Context.CONNECTIVITY_SERVICE);
boolean isMobileDataEnable = false;
isMobileDataEnable = connectivityManager.getNetworkInfo(
ConnectivityManager.TYPE_MOBILE).isConnectedOrConnecting();
return isMobileDataEnable;
}
/**
* 判断wifi 是否可用
* @param context
* @return
*/
public static boolean isWifiDataEnable(Context context) {
ConnectivityManager connectivityManager = (ConnectivityManager) context
.getSystemService(Context.CONNECTIVITY_SERVICE);
boolean isWifiDataEnable = false;
isWifiDataEnable = connectivityManager.getNetworkInfo(
ConnectivityManager.TYPE_WIFI).isConnectedOrConnecting();
return isWifiDataEnable;
}
/**
* @param context
* @return 0:没有网络 1:wifi 2:移动流量网络
*/
public static int getNetworkState(Context context) {
ConnectivityManager connManager = (ConnectivityManager) context
.getSystemService(Context.CONNECTIVITY_SERVICE);
// Wifi
State state = connManager.getNetworkInfo(ConnectivityManager.TYPE_WIFI)
.getState();
if (state == State.CONNECTED || state == State.CONNECTING) {
return NETWORN_WIFI;
}
// 3G
state = connManager.getNetworkInfo(ConnectivityManager.TYPE_MOBILE)
.getState();
if (state == State.CONNECTED || state == State.CONNECTING) {
return NETWORN_MOBILE;
}
return NETWORN_NONE;
}
}

NetWorkHelper 检测网络状态相关推荐

  1. Linux下检测网络状态是否正常

    // Linux下检测网络状态是否正常 #include <sys/types.h> #include <string.h> #include <stdlib.h> ...

  2. iOS开发网络篇—Reachability检测网络状态

    前言:当应用程序需要访问网络的时候,它首先应该检查设备的网络状态,确认设备的网络环境及连接情况,并针对这些情况提醒用户做出相应的处理.最好能监听设备的网络状态的改变,当设备网络状态连接.断开时,程序也 ...

  3. ubuntu 检测网络状态命令

    一.检测网络状态常用的基本命令 1)ifconfig命令被用于配置和显示Linux内核中网络接口的网络参数 ifconfig 输出结果如下: drew@ubun:~$ ifconfig eth0 Li ...

  4. AFNetworkReachabilityManager检测网络状态

    // 如果要检测网络状态的变化,必须用检测管理器的单例的startMonitoring[[AFNetworkReachabilityManager sharedManager] startMonito ...

  5. flutter检测网络状态

    flutter检测网络状态 原来使用的插件connectivity已经停止使用,现在使用的是新版的connectivity_plus 插件地址:https://pub.dev/packages/con ...

  6. iOS开发 - 检测网络状态(WIFI、2G/3G/4G)

    检测网络状态 在网络应用中,需要对用户设备的网络状态进行实时监控,目的是 让用户了解自己的网络状态,防止一些误会(比如怪应用无能) 根据用户的网络状态进行智能处理,节省用户流量,提高用户体验 WIFI ...

  7. 怎么用nodejs检测网络状态?

    nodejs可以使用检测因特网状态的库internet-available.is-online来检查网络状态,其原理是检测dns连接状态.这两个库提供了超时检测. 用nodejs检测网络状态: int ...

  8. Android移动开发检测网络状态并使用BroadcastReceiver(广播接收者)进行接收网络变化的后续处理

    在Android开发中,许多功能需要网络连接,所以在开发过程中需要进行手机网络的检测.而每做一个App,就要进行检测,那么我直接将检测网络状态的功能封装成一个类. 检测网络状态所需要的Api: Con ...

  9. UWP 检测网络状态

    最近发现Community Toolkit有了网络辅助类,貌似很早就有了... 很不错,还是用.给大家分享一下. 1. 检测网络是否可用 2. 检测网络是否是计费模式? 3. 检测网络接入类型 4. ...

  10. Android笔记 检测网络状态

    1布局 <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"     xmln ...

最新文章

  1. SSH访问控制,多次失败登录即封掉IP,防止暴力破解
  2. 微信小程序之可滚动视图容器组件 scroll-view
  3. Python 命令行之旅:深入 click 之参数篇
  4. layui设置按钮不可点击_(eblog)7、博客发布收藏、用户中心的设置
  5. CANN AICPU算子耗时分析及优化探索
  6. 使用qt制作License(原理)
  7. ROST情感分析的语法规则_从词法分析角度聊 Go 代码组成
  8. 双11 背后的全链路可观测性:阿里巴巴鹰眼在“云原生时代”的全面升级
  9. 开始写博客---越来越笨的脑子
  10. python增加一列数据_使用Python向DataFrame中指定位置添加一列或多列的方法
  11. 2019年的人工智能需要什么
  12. Java使用poi-tl生成word文档
  13. 操作系统学习笔记:保护
  14. 着急使用新西兰无犯罪文件怎么办理新西兰使馆认证呢
  15. 关于磁力链接(Magnet URI)的简单介绍
  16. Python:把一个数组按指定数组大小size分割为多个数组
  17. 微信公众号运营 新手必知的五大运营攻略
  18. mmdection评价结果
  19. 嵌入式系统中文输入法的设计(一)
  20. 1、查找假币 编写一个实验程序查找假币,有n(n3)个硬币,其中有一个假币,且假币较轻,采用天平秤重方式找到这个假币,并给出操作步骤。

热门文章

  1. .NET Reflector Visual Studio Extension
  2. 读周爱民《javascript语言精髓与编程实践》有感
  3. pip 安装库出错:Defaulting to user installation because normal site-packages is not writeable
  4. 扬州工业机器人外壳设计排名_扬州模型达人设计机器人获奖
  5. Fsm hdlc_HDLbits
  6. 下次激活策略10_宋楠:解读北汽新能源EU5R550核心技术之低温充电预热策略
  7. 利用Python删除Android项目中未使用的图片
  8. html5分镜头脚本范例,分镜头脚本范例
  9. 计算机英语趣味知识竞赛题库,2019年小学四年级英语趣味知识竞赛试题
  10. H3C路由器交换机配置 操作系统介绍