ConnectivityManager类,回答了关于网络连接的状态查询。它还通知应用程序,当网络连接的变化。可以通过如下调用得到这个类的一个实例Context.getSystemService(Context.CONNECTIVITY_SERVICE)

这个类的主要职责是:

  1. 监控网络连接(无线网络连接,GPRS,UMTS等)
  2. 发送广播意图时的网络连接的变化
  3. 尝试“故障转移”到另一个网络时,连接到网络丢失
  4. 提供了一个API,允许应用程序查询可用网络的粗粒或细粒状态
  5. 提供了一个API,允许为他们的数据流量的应用程序的要求,选择网络
下面举例一个判断当前是否有网络的代码(示例来自《第一行代码·第二版》)

方法

  getNetworkInfo(Network network)

返回有关特定网络连接状态的信息。

注: getSystemService是Android很重要的一个API,它是Activity的一个方法,根据传入的NAME来取得对应的Object,然后转换成相应的服务对象。以下介绍系统相应的服务。详见:getSystemService详见
MainActivity文件(略过外部包)
public class MainActivity extends AppCompatActivity {    private IntentFilter intentFilter;    private NetworkChangeReceiver networkChangeReceiver;    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);        intentFilter=new IntentFilter();        intentFilter.addAction("android.net.conn.CONNECTIVITY_CHANGE");        networkChangeReceiver = new NetworkChangeReceiver();        registerReceiver(networkChangeReceiver,intentFilter);    }    @Override    protected void onDestroy(){        super.onDestroy();        unregisterReceiver(networkChangeReceiver);    }    class NetworkChangeReceiver extends BroadcastReceiver{        @Override        public void onReceive(Context context, Intent intent){            ConnectivityManager connectivityManager=(ConnectivityManager)                    getSystemService(Context.CONNECTIVITY_SERVICE);            NetworkInfo networkInfo=connectivityManager.getActiveNetworkInfo();            if(networkInfo!=null&&networkInfo.isAvailable()){                Toast.makeText(context,"network is available",Toast.LENGTH_SHORT).show();            }            else{                Toast.makeText(context,"network is unavailable",Toast.LENGTH_SHORT).show();            }        }    }}
另外,这里访问系统的网络状态是需要声明权限的,打开AndroidManifest.xml文件,加入如下代码:



更多相关文章

  1. SpringBoot 2.0 中 HikariCP 数据库连接池原理解析
  2. Android在代码中打开Wifi、移动网络和GPS
  3. MTP 看不到软件创建的文件夹(Android端)
  4. android 获取网络数据,回传到本地用TextView显示乱码问题解决方法
  5. ubuntu 12.04 build android的问题
  6. Android列表嵌入视频播放
  7. usb 网络共享无法选择
  8. 浅谈关于listview和button控件的背景
  9. android开发工具类之获得WIFI IP地址或者手机网络IP

随机推荐

  1. Android - Espresso -滚动到非列表视图项
  2. demo_代码注册广播接受者_Service
  3. 从零开始学android<popupwindow弹出式窗
  4. Android Services (后台服务)
  5. 面试之菜鸟吐槽技术总监
  6. 移除map中的键值对
  7. Android开发-再按一次返回退出程序-Andro
  8. 集成腾讯Bugly异常监测平台
  9. Android Studio 集成 ShareSDK 如何 覆盖
  10. 使用adb从android手机拉取文件到电脑