广播分为动态和静态广播,此案例为动态广播

package com.yoostar.summary.utils;import android.content.BroadcastReceiver;import android.content.Context;import android.content.Intent;import android.net.ConnectivityManager;import android.net.NetworkInfo;import android.widget.Toast;/** * ================================================ * 作    者:zhoujianan * 版    本:v1.0 * 创建日期:2019/8/28 * 描    述: * 修订历史: * ================================================ */public class NetworkReceiver extends BroadcastReceiver {    public void onReceive(Context context, Intent intent) {        String action = intent.getAction();        if (action.equals(ConnectivityManager.CONNECTIVITY_ACTION)) {            ConnectivityManager connectivityManager = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);            NetworkInfo networkInfo = connectivityManager.getActiveNetworkInfo();            //说明当前有网络            if (networkInfo != null && networkInfo.isAvailable()) {                int type = networkInfo.getType();                switch (type) {                    case ConnectivityManager.TYPE_MOBILE:                        Toast.makeText(context, "当前移动网络正常", Toast.LENGTH_SHORT).show();                        break;                    case ConnectivityManager.TYPE_WIFI:                        Toast.makeText(context, "当前WIFI网络正常", Toast.LENGTH_SHORT).show();                        break;                    case ConnectivityManager.TYPE_ETHERNET:                        Toast.makeText(context, "当前以太网网络正常", Toast.LENGTH_SHORT).show();                        break;                }            } else {                //说明当前没有网络                Toast.makeText(context, "当前网络异常", Toast.LENGTH_SHORT).show();            }        }    }}
package com.yoostar.summary.http.activity;import android.content.IntentFilter;import android.net.ConnectivityManager;import android.os.Bundle;import android.support.v7.app.AppCompatActivity;import android.widget.TextView;import com.yoostar.summary.R;import com.yoostar.summary.utils.Logger;import com.yoostar.summary.utils.NetworkReceiver;/** * ================================================ * 作    者:zhoujianan * 版    本:v1.0 * 创建日期:2019/8/28 * 描    述: * 修订历史: * ================================================ */public class NetworkActivity extends AppCompatActivity {    private TextView networkTv;    private NetworkReceiver mNetReceiver;    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_network);        initView();        initNetworkReceiver();    }    private void initNetworkReceiver() {        mNetReceiver = new NetworkReceiver();        IntentFilter filter = new IntentFilter();        filter.addAction(ConnectivityManager.CONNECTIVITY_ACTION);        registerReceiver(mNetReceiver, filter);    }    private void initView() {        TextView textView = findViewById(R.id.network_tv);    }    @Override    protected void onDestroy() {        super.onDestroy();        Logger.i(Logger._TJ, "onDestroy");        unregisterReceiver(mNetReceiver);    }}

Manifest.xml 中需要增加的网络权限

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

更多相关文章

  1. Android 监听网络变化然后刷新页面
  2. [置顶] Android动态添加控件约束位置
  3. android开启和关闭移动网络
  4. Android中使用HttpURLConnection和HttpClient实现GET和POST请求
  5. android网络访问兼容
  6. Android实现动态显示或隐藏密码输入框的内容
  7. android播放网络音频

随机推荐

  1. android 4.4.2 默认打开wifi
  2. Android跨进程通信IPC之4——AndroidIPC
  3. Android(安卓)笔记
  4. Android(安卓)- 直线(line)画法
  5. [置顶] Android(安卓)开发教程 (包括全部
  6. Item高度固定下动态设置ListView的高度
  7. android 发送http请求
  8. android animation 属性列表
  9. Android音频开发(1):音频相关知识
  10. Android横竖屏切换解决方案