Android获取当前网络状态

Android获取当前网络状态

效果图

  • 有网络

  • 没有网络

源码

下载地址(Android Studio工程):http://download.csdn.net/detail/q4878802/9052833

添加获取网络状态的权限

<!-- 获取网络状态的权限 -->
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />

工具类

package com.kongqw.kqwnetworkdemo.engine;

import android.content.Context;
import android.net.ConnectivityManager;
import android.net.NetworkInfo;
import android.widget.Toast;

/**
 * Created by kongqw on 2015/8/27.
 */
public class KqwNetworkUtil {

    /**
     * 构造私有化 不允许创建对象
     */
    private KqwNetworkUtil() {
    }

    /**
     * 获取当前的网络状态是否可用
     *
     * @param context
     * @return
     */
    public static boolean getNetworkState(Context context) {
        // 获取手机所有连接管理对象(包括对wi-fi,net等连接的管理)
        ConnectivityManager connectivityManager = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);
        // 获取NetworkInfo对象
        NetworkInfo[] networkInfos = connectivityManager.getAllNetworkInfo();
        // 遍历每一个对象
        for (NetworkInfo networkInfo : networkInfos) {
            if (networkInfo.getState() == NetworkInfo.State.CONNECTED) {
                // debug信息
                Toast.makeText(context,"TypeName = " + networkInfo.getTypeName(),Toast.LENGTH_SHORT).show();
                // 网络状态可用
                return true;
            }
        }
        // 没有可用的网络
        return false;
    }
}

测试类

package com.kongqw.kqwnetworkdemo;

import android.app.Activity;
import android.os.Bundle;
import android.widget.Toast;

import com.kongqw.kqwnetworkdemo.engine.KqwNetworkUtil;

public class MainActivity extends Activity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        if (KqwNetworkUtil.getNetworkState(this)) {
            Toast.makeText(this, "当前网络可用", Toast.LENGTH_SHORT).show();
        } else {
            Toast.makeText(this, "当前网络不可用", Toast.LENGTH_SHORT).show();
        }
    }
}

版权声明:本文为博主原创文章,未经博主允许不得转载。所有文章,任何一个技术点,无论是原创还是转载,都是在程序中使用过或者Demo测试过才发表!博主QQ:4878802。

时间: 2024-12-06 16:42:09

Android获取当前网络状态的相关文章

android 监听网络状态的变化及实战

android 监听网络状态的变化及实际应用 转载请注明博客地址:http://blog.csdn.net/gdutxiaoxu/article/details/53008266 平时我们在请求错误的情况下,通常会进行处理一下,一般来说,主要分为两方面的错误 - 没有网络的错误 - 在有网络的情况下,我们客户端的错误或者服务器端的错误 今天这篇博客主要阐述以下问题 怎样监听网络状态的变化,包括是否打开WiFi,否打开数据网络,当前连接的网络是否可用 网络没有打开情况下的处理,如弹出对话框,跳转到

Android笔记之网络状态判断

1.首先当然得在 manifest 中添加检查网络状态的权限: <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"></uses-permission><uses-permission android:name="android.permission.INTERNET"/> 2.具体判断步骤 (1)首先要先获得Android 对连接管理的一

Android笔记之网络状态

先上一个工具类的代码: package com.yonyou.util; import android.content.Context; import android.net.ConnectivityManager; import android.net.NetworkInfo; /** * 判断当前网络状态 * @author xxx * */ public class NetWorkUtil { static NetWorkUtil netWorkUtil; private NetWorkU

Android监听网络状态

该笔记是用来实时获取网络的状态,有点想QQ的断网提醒,为了以后的工作中用到,就在此处写下关于此判断的代码,下面就是写的一些代码: package com.example.nettest; import receiver.NetReceiver; import android.app.Activity; import android.content.IntentFilter; import android.net.ConnectivityManager; import android.os.Bun

Android笔记之网络状态推断

1.首先当然得在 manifest 中加入检查网络状态的权限: <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"></uses-permission><uses-permission android:name="android.permission.INTERNET"/> 2.详细推断步骤 (1)首先要先获得Android 对连接管理的一

微信小程序—获取用户网络状态和设备的信息

这个是一个简易教程,按照他的步骤下载好了,打开界面看到的效果是如下的: 这个表示没有问题得,那么我们如何获取网络状态呢?比如我到底是处于wifi状态还是2G/3G/4G网络呢? 那我们先分析下,这个hello world咋个来的呢? 打开index页面如下图: 原来是这个变量获取的值,那么这个变量在哪里呢?请见下图,index.js里哈 原来是这里啊,那么我们要在页面显示网络状态,那么我们也定一个变量吧, 这个API文档在这里,这样我们就获取到了网络状态了,而且显示到了前台页面上了,我还获取了设

Android Network -------------------判断网络状态(网络的连接,改变,和判断2G/3G/4G)

现在app大多都需要从网络上获得数据.所以访问网络是在所难免.但是再访问网络之前,我们应该先做一下网络的状态判断.其实在访问网络之前我们要做一些状态判断,对应一些状态判断来做处理,并不是直接使用Http访问网络即可.很多人在开发就经常把网络这块直接跳过,直接访问网络,可以一断网,各种体验效果不好,不是说app没法用,只是体验效果差.还有,就是我们可能为用户考虑,因为现在一般连网是wifi和手机流量,都知道后者收费是比较高的.假如我们的app加载的图片或者有大的数据下载操作,可是用户的本意是要是在

Swift中利用AFN获取当前网络状态

p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; font: 14.0px Menlo; color: #000000 } p.p2 { margin: 0.0px 0.0px 0.0px 0.0px; font: 14.0px Menlo; color: #000000; min-height: 16.0px } span.s1 { color: #ed462f } span.s2 { } 本文只作自用笔记,不喜勿喷,诚谢纠错. 对于获取网络状态,感觉AFN比较容

iOS开发之runtime的运用-获取当前网络状态

之前写过runtime的一些东西,这次通过runtime获取一些苹果官方不想让你拿到的东西,比如,状态栏内部的控件属性.本文将通过runtime带你一步步拿到状态栏中显示网络状态的控件,然后通过监测该控件的属性来获取当前精确网络状态,比如2G/3G/4G/WIFI.首先,我们需要拿到状态栏,然后通过runtime去探讨状态栏内部的组成结构.导入运行时头文件#import <objc/message.h>编写运行时代码,获取到当前应用程序的所有成员变量 #import "ViewCon