Android ConnectivityManager详解
来源:互联网 发布:windows agent 安装 编辑:程序博客网 时间:2024/06/07 23:49
ConnectivityManager类,回答了关于网络连接的状态查询。它还通知应用程序,当网络连接的变化。可以通过如下调用得到这个类的一个实例Context.getSystemService(Context.CONNECTIVITY_SERVICE)
。
这个类的主要职责是:
- 监控网络连接(无线网络连接,GPRS,UMTS等)
- 发送广播意图时的网络连接的变化
- 尝试“故障转移”到另一个网络时,连接到网络丢失
- 提供了一个API,允许应用程序查询可用网络的粗粒或细粒状态
- 提供了一个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文件,加入如下代码:
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
0 0
- Android ConnectivityManager详解
- ConnectivityManager详解
- Android学习-----ConnectivityManager和NetworkInfo详解
- Android网络编程ConnectivityManager和NetworkInfo详解
- Android ConnectivityManager
- android ConnectivityManager
- Android网络编程(二)ConnectivityManager和NetworkInfo详解
- Android网络编程(二)ConnectivityManager和NetworkInfo详解
- ConnectivityManager和NetworkInfo详解
- Android ConnectivityManager 网络连接
- android.net.ConnectivityManager
- android connectivitymanager简介
- Android之ConnectivityManager
- Android之ConnectivityManager
- Android之ConnectivityManager
- Android ConnectivityManager网络连接
- Android笔记之ConnectivityManager
- Android ConnectivityManager.CONNECTIVITY_ACTION延时
- c++bug小结(一)
- 使用wsimport命令生成webService客户端代码实例
- 【操作系统】信号量与P、V操作
- MySQL 基本操作和用户管理
- 安装tensorflow(ubuntu)
- Android ConnectivityManager详解
- C# -- Async 和 Await 解惑
- ABB robotstudio 创建系统小问题,谢谢
- 渲染引擎杂记(2)——折射光线方向公式推导
- JSP Standard Tag Library
- git revert 和reset的区别
- Tensorflow一些常用基本概念与函数2
- IBatis
- C++ ->的作用