android当前网络连接类型判断

package net.nyist.netState;  

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

/**@author
 *
 *这是一个判断当前网络状态的工具类
 *
 */
public class netState {
    /**
     *
     * @return 是否有活动的网络连接
     */
    public final boolean hasNetWorkConnection(Context context){
        //获取连接活动管理器
        final ConnectivityManager connectivityManager= (ConnectivityManager) context.
                getSystemService(Context.CONNECTIVITY_SERVICE);
        //获取链接网络信息
        final NetworkInfo networkInfo=connectivityManager.getActiveNetworkInfo();  

        return (networkInfo!= null && networkInfo.isAvailable());  

    }
    /**
     * @return 返回boolean ,是否为wifi网络
     *
     */
    public final boolean hasWifiConnection(Context context)
    {
        final ConnectivityManager connectivityManager= (ConnectivityManager) context.
                getSystemService(Context.CONNECTIVITY_SERVICE);
        final NetworkInfo networkInfo=connectivityManager.getNetworkInfo(ConnectivityManager.TYPE_WIFI);
        //是否有网络并且已经连接
        return (networkInfo!=null&& networkInfo.isConnectedOrConnecting());  

    }  

    /**
     * @return 返回boolean,判断网络是否可用,是否为移动网络
     *
     */  

    public final boolean hasGPRSConnection(Context context){
        //获取活动连接管理器
        final ConnectivityManager connectivityManager= (ConnectivityManager) context.
                getSystemService(Context.CONNECTIVITY_SERVICE);
        final NetworkInfo networkInfo=connectivityManager.getNetworkInfo(ConnectivityManager.TYPE_MOBILE);
        return (networkInfo!=null && networkInfo.isAvailable());  

    }
    /**
     * @return  判断网络是否可用,并返回网络类型,ConnectivityManager.TYPE_WIFI,ConnectivityManager.TYPE_MOBILE,不可用返回-1
     */
    public static final int getNetWorkConnectionType(Context context){
        final ConnectivityManager connectivityManager=(ConnectivityManager) context.
                getSystemService(Context.CONNECTIVITY_SERVICE);
        final NetworkInfo wifiNetworkInfo=connectivityManager.getNetworkInfo(ConnectivityManager.TYPE_WIFI);
        final NetworkInfo mobileNetworkInfo=connectivityManager.getNetworkInfo(ConnectivityManager.TYPE_MOBILE);  

        if(wifiNetworkInfo!=null &&wifiNetworkInfo.isAvailable())
        {
            return ConnectivityManager.TYPE_WIFI;
        }
        else if(mobileNetworkInfo!=null &&mobileNetworkInfo.isAvailable())
        {
            return ConnectivityManager.TYPE_MOBILE;
        }
        else {
            return -1;
        }  

    }  

}
时间: 2024-10-09 02:24:58

android当前网络连接类型判断的相关文章

Android 判断当前网络连接类型

实际应用开发时,如果存在需要用户获取大量数据的情况,最好是先判断下网络类型,提示用户当前的网络类型,是否需要连接Wifi,etc.(手机流量太贵啦,当然土豪是无视这玩意的, (/ □ \)). 定义网络连接类型: public static final int NETTYPE_NULL = 0x00; //未连接网络 public static final int NETTYPE_WIFI = 0x01; //WIFI public static final int NETTYPE_MOBILE

Unity如何判断网络连接类型

今天遇到了一个问题,如何判断手机游戏当前的网络连接类型,是wifi还是234G? 起初准备在Android中写好插件供Unity调用,后来在网上浏览众神的帖子时,在csdn上看到了使用NetworkReachability的使用方法,于是自己的安卓机完美解决,屌丝惜肾无爱疯,希望有人可以试试在ios上是否同样可用. 上代码: [code]csharpcode: using UnityEngine; using System.Collections; public class Test : Mon

Unity判断网络连接类型

使用NetworkReachability判断手机游戏当前的网络连接类型,是wifi还是234G 1 using UnityEngine; 2 using System.Collections; 3 4 public class Test : MonoBehaviour { 5 6 string str; 7 // Use this for initialization 8 void Start () { 9 if (Application.internetReachability == Net

iphone判断当前网络连接类型

?Reachability只能区分出无网络.wifi和wwan(2G&2.5G&3G)类型的网络连接类型,只需重构networkStatusForFlags方法,即可详细区分出2G与3G网络 ??1. [代码][C/C++]代码     //Reachability.m 中 networkStatusForFlags 方法重构- (NetworkStatus) networkStatusForFlags: (SCNetworkReachabilityFlags) flags{if ((fl

android检测网络连接状态示例讲解

网络的时候,并不是每次都能连接到网络,因此在程序启动中需要对网络的状态进行判断,如果没有网络则提醒用户进行设置 Android连接首先,要判断网络状态,需要有相应的权限,下面为权限代码(AndroidManifest.xml): 复制代码 代码如下: <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/><uses-permission android:name="a

Android 检测网络连接状态

Android APP需要连接网络的时候,并不是每次都能连接到网络,因此需要在程序对当前设备的网络状态进行检测,以便及时对用户进行提醒. 判断网络状态,需要有相应的权限,权限代码如下(AndroidManifest.xml): <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/> <uses-permission android:name="android.perm

android 检查网络连接状态实现步骤

获取网络信息需要在AndroidManifest.xml文件中加入相应的权限. <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> 1)判断是否有网络连接 复制代码 代码如下: public boolean isNetworkConnected(Context context) { if (context != null) { ConnectivityManager mConn

android之网络状态的判断

第一步:接收状态信息 (1.写setActivity方法是为了获得界面的控件设定是否隐藏 2.此类继承BroadcastReceiver,作用是重新广播接收者) import android.app.Activity; import android.content.BroadcastReceiver; import android.content.Context; import android.content.Intent; import android.net.ConnectivityMana

android 获取网络连接信息

效果图: 工具类 /** * 获取网络连接信息 * * 根据NetworkInfo可以知道有很多的连接方式和信息 * * ① 当没有任何可用网络的时候,networkinfo为null 判断networkinfo是否为null * * ② 当只有wifi网络或者wifi网络和移动网络同时存在的时候,返回wifi网络连接信息 * * NetworkInfo参数如下: * * detailedState:CONNECTED(连接状态) * * extraInfo:yiteng1(wifi网络名称)