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 检测网络状态相关推荐
- Linux下检测网络状态是否正常
// Linux下检测网络状态是否正常 #include <sys/types.h> #include <string.h> #include <stdlib.h> ...
- iOS开发网络篇—Reachability检测网络状态
前言:当应用程序需要访问网络的时候,它首先应该检查设备的网络状态,确认设备的网络环境及连接情况,并针对这些情况提醒用户做出相应的处理.最好能监听设备的网络状态的改变,当设备网络状态连接.断开时,程序也 ...
- ubuntu 检测网络状态命令
一.检测网络状态常用的基本命令 1)ifconfig命令被用于配置和显示Linux内核中网络接口的网络参数 ifconfig 输出结果如下: drew@ubun:~$ ifconfig eth0 Li ...
- AFNetworkReachabilityManager检测网络状态
// 如果要检测网络状态的变化,必须用检测管理器的单例的startMonitoring[[AFNetworkReachabilityManager sharedManager] startMonito ...
- flutter检测网络状态
flutter检测网络状态 原来使用的插件connectivity已经停止使用,现在使用的是新版的connectivity_plus 插件地址:https://pub.dev/packages/con ...
- iOS开发 - 检测网络状态(WIFI、2G/3G/4G)
检测网络状态 在网络应用中,需要对用户设备的网络状态进行实时监控,目的是 让用户了解自己的网络状态,防止一些误会(比如怪应用无能) 根据用户的网络状态进行智能处理,节省用户流量,提高用户体验 WIFI ...
- 怎么用nodejs检测网络状态?
nodejs可以使用检测因特网状态的库internet-available.is-online来检查网络状态,其原理是检测dns连接状态.这两个库提供了超时检测. 用nodejs检测网络状态: int ...
- Android移动开发检测网络状态并使用BroadcastReceiver(广播接收者)进行接收网络变化的后续处理
在Android开发中,许多功能需要网络连接,所以在开发过程中需要进行手机网络的检测.而每做一个App,就要进行检测,那么我直接将检测网络状态的功能封装成一个类. 检测网络状态所需要的Api: Con ...
- UWP 检测网络状态
最近发现Community Toolkit有了网络辅助类,貌似很早就有了... 很不错,还是用.给大家分享一下. 1. 检测网络是否可用 2. 检测网络是否是计费模式? 3. 检测网络接入类型 4. ...
- Android笔记 检测网络状态
1布局 <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmln ...
最新文章
- SSH访问控制,多次失败登录即封掉IP,防止暴力破解
- 微信小程序之可滚动视图容器组件 scroll-view
- Python 命令行之旅:深入 click 之参数篇
- layui设置按钮不可点击_(eblog)7、博客发布收藏、用户中心的设置
- CANN AICPU算子耗时分析及优化探索
- 使用qt制作License(原理)
- ROST情感分析的语法规则_从词法分析角度聊 Go 代码组成
- 双11 背后的全链路可观测性:阿里巴巴鹰眼在“云原生时代”的全面升级
- 开始写博客---越来越笨的脑子
- python增加一列数据_使用Python向DataFrame中指定位置添加一列或多列的方法
- 2019年的人工智能需要什么
- Java使用poi-tl生成word文档
- 操作系统学习笔记:保护
- 着急使用新西兰无犯罪文件怎么办理新西兰使馆认证呢
- 关于磁力链接(Magnet URI)的简单介绍
- Python:把一个数组按指定数组大小size分割为多个数组
- 微信公众号运营 新手必知的五大运营攻略
- mmdection评价结果
- 嵌入式系统中文输入法的设计(一)
- 1、查找假币 编写一个实验程序查找假币,有n(n3)个硬币,其中有一个假币,且假币较轻,采用天平秤重方式找到这个假币,并给出操作步骤。
热门文章
- .NET Reflector Visual Studio Extension
- 读周爱民《javascript语言精髓与编程实践》有感
- pip 安装库出错:Defaulting to user installation because normal site-packages is not writeable
- 扬州工业机器人外壳设计排名_扬州模型达人设计机器人获奖
- Fsm hdlc_HDLbits
- 下次激活策略10_宋楠:解读北汽新能源EU5R550核心技术之低温充电预热策略
- 利用Python删除Android项目中未使用的图片
- html5分镜头脚本范例,分镜头脚本范例
- 计算机英语趣味知识竞赛题库,2019年小学四年级英语趣味知识竞赛试题
- H3C路由器交换机配置 操作系统介绍