• 广播小案例-监听系统网络状态 --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网络信息。
  • 相关阅读:
    网络流,再出发!
    2SAT
    并查集
    最大密度子图
    网络流提高专题(洛谷题单)
    JQuery 操作 ListBox间移动和ListBox内移动
    关于多表Update和Delete的应用
    XML格式与DataTable、DataSet、DataView格式的转换
    FCKeditor配置和精简
    点击fileupload后button事件不起作用
  • 原文地址:https://www.cnblogs.com/qikeyishu/p/9216990.html
Copyright © 2020-2023  润新知