Android检测网络是否可用并获取网络类型

本文介绍了一种在Android应用中检查网络连接状态和确定网络类型的方法。通过使用ConnectivityManager服务,可以判断设备是否连接到网络,并进一步区分是WIFI、CMWAP还是CMNET网络。这在开发需要联网功能的应用时非常实用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在类中使用getSystemService的时候需要这样进行使用:1.

public class JajaMenu extends Activity 
{
    public static JajaMenu instance;
    
    @Override
    public void onCreate(Bundle savedInstanceState)
    {
        super.onCreate(savedInstanceState);
        super.init();
        instance=this;
    }
    
  //获取实例
      public static JajaMenu getInstance(){
          return instance;
      }
}

2.调用

public static final int NETTYPE_WIFI = 0x01;
public static final int NETTYPE_CMWAP = 0x02;
public static final int NETTYPE_CMNET = 0x03;

 

/**
     * 检测网络是否可用
     * @return
     */
    public boolean isNetworkConnected(){
        ConnectivityManager cm=(ConnectivityManager)JajaMenu.getInstance().getSystemService(Context.CONNECTIVITY_SERVICE);
        NetworkInfo networkInfo=cm.getActiveNetworkInfo();
        return networkInfo !=null && networkInfo.isConnectedOrConnecting();
    }
    
    /**
     * 获取网络类型
     * @return 0:没有网络   1:WIFI网络   2:WAP网络    3:NET网络
     * */
    public int getNetworkType(){
        int netType=0;
        ConnectivityManager cm=(ConnectivityManager)JajaMenu.getInstance().getSystemService(Context.CONNECTIVITY_SERVICE);
        NetworkInfo networkInfo=cm.getActiveNetworkInfo();
        if(networkInfo == null){
            return netType;
        }
        int nType=networkInfo.getType();
        if(nType ==ConnectivityManager.TYPE_MOBILE){
            String extraInfo=networkInfo.getExtraInfo();
            if(!extraInfo.isEmpty()){
                String strInfo=extraInfo.toLowerCase();
                if(strInfo.equals("cmnet")){
                    netType=NETTYPE_CMNET;
                }
                else{
                    netType=NETTYPE_CMWAP;
                }
            }
        }
        else if(nType ==ConnectivityManager.TYPE_WIFI){
            netType=NETTYPE_WIFI;
        }
        return netType;
    }

 

转载于:https://www.cnblogs.com/ToFlying/p/4233861.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值