Android(安卓)ConnectivityManager详解
16lz
2021-01-26
ConnectivityManager类,回答了关于网络连接的状态查询。它还通知应用程序,当网络连接的变化。可以通过如下调用得到这个类的一个实例Context.getSystemService(Context.CONNECTIVITY_SERVICE)
。
这个类的主要职责是:
- 监控网络连接(无线网络连接,GPRS,UMTS等)
- 发送广播意图时的网络连接的变化
- 尝试“故障转移”到另一个网络时,连接到网络丢失
- 提供了一个API,允许应用程序查询可用网络的粗粒或细粒状态
- 提供了一个API,允许为他们的数据流量的应用程序的要求,选择网络
方法
getNetworkInfo(Network network) 返回有关特定网络连接状态的信息。 |
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文件,加入如下代码:
更多相关文章
- SpringBoot 2.0 中 HikariCP 数据库连接池原理解析
- Android在代码中打开Wifi、移动网络和GPS
- MTP 看不到软件创建的文件夹(Android端)
- android 获取网络数据,回传到本地用TextView显示乱码问题解决方法
- ubuntu 12.04 build android的问题
- Android列表嵌入视频播放
- usb 网络共享无法选择
- 浅谈关于listview和button控件的背景
- android开发工具类之获得WIFI IP地址或者手机网络IP