BasicNetworking

本次学习都以android-23版本为例子

路径:

...\sdk\samples\android-23\connectivity\BasicNetworking

描述

检测网络是否连接,并区分为wifi还是移动网络连接

知识点

权限

<uses-permission android:name="android.permission.INTERNET" />
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
/**
     * Check whether the device is connected, and if so, whether the connection
     * is wifi or mobile (it could be something else).
     */
    private void checkNetworkConnection() {

      ConnectivityManager connMgr =
          (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);
      NetworkInfo activeInfo = connMgr.getActiveNetworkInfo();
      if (activeInfo != null && activeInfo.isConnected()) {
          wifiConnected = activeInfo.getType() == ConnectivityManager.TYPE_WIFI;
          mobileConnected = activeInfo.getType() == ConnectivityManager.TYPE_MOBILE;
          if(wifiConnected) {
              Log.i(TAG, getString(R.string.wifi_connection));
          } else if (mobileConnected){
              Log.i(TAG, getString(R.string.mobile_connection));
          }
      } else {
          Log.i(TAG, getString(R.string.no_wifi_or_mobile));
      }

    }

首先获取到ConnectivityManager实例:

 ConnectivityManager connMgr =
          (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);

再拿到网络信息NetworkInfo

NetworkInfo activeInfo = connMgr.getActiveNetworkInfo();

通过activeInfo.isConnected()来判断是否有网络连接

if (activeInfo != null && activeInfo.isConnected()) {
          //有网络连接
      } else {
          //无网络连接
      }

如果只要判断app是否联网的话,到这一步已经够了,需要继续细分为wifi网络环境还是移动网络环境的话,还需要做一下判断

if(activeInfo.getType() == ConnectivityManager.TYPE_WIFI){
    //wifi环境
}

if(activeInfo.getType() == ConnectivityManager.TYPE_MOBILE){
    //移动网络环境
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值