zoukankan      html  css  js  c++  java
  • 广播小案例-监听系统网络状态 --Android开发

    本例通过广播实现简单的监听系统网络状态改变的小案例。

    1、案例效果演示

    当手机连网后,系统提示“已连接网络”,

    当手机断网后,系统提示“当前网络不可用”。

    2、案例实现

    在主活动中动态注册广播,然后写一个内部类来接收系统广播,下面是相关文件的核心代码:

    MainActivity.java:

    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) {
    // Toast.makeText(context, "网络状态发生改变!",
    // Toast.LENGTH_SHORT).show();
    ConnectivityManager connectivityManager = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);
    NetworkInfo networkInfo = connectivityManager.getActiveNetworkInfo();

    if (networkInfo != null && networkInfo.isAvailable()) {
    Toast.makeText(context, "已连接网络", Toast.LENGTH_SHORT).show();
    } else {
    Toast.makeText(context, "当前网络不可用", Toast.LENGTH_SHORT).show();
    }
    }
    }
    }

    另外一定要配置网络相关的权限,在这里需要在AndroidManifest.xml中添加下面的代码:

    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />

    意思是允许程序访问有关GSM网络信息。
  • 相关阅读:
    协程基础及其创建和使用方法
    创建进程池与线程池concurrent.futures模块的使用
    线程队列queue的使用
    线程操作之锁的使用
    linux内核调试指南
    在开发板Linux上挂载"驱动"挂载不成功,出现提示server 172.27.52.100 not responding, still trying
    LPC1788 SDRAM运行程序
    Altium designer 原理图库快速创建
    NFS挂载启动
    网站记录
  • 原文地址:https://www.cnblogs.com/qikeyishu/p/9216990.html
Copyright © 2011-2022 走看看