广播实时监听网络状态

来源:互联网 发布:sql select as语句 编辑:程序博客网 时间:2024/05/21 08:03

//清单文件中添加权限

 <!--上网权限 和 获取网络状态的权限-->
    <uses-permission android:name="android.permission.INTERNET" />
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />


//在MainActivity中动态注册广播

//创建一个内部类ConnectivityBroadcastReceiver继承BroadcastReceiver

//动态注册广播,创建一个IntentFilter

//设置全局变量

        private ConnectivityBroadcastReceiver mConnectivityBroadcastReceiver;

        //onCreate方法中

        IntentFilter filter = new IntentFilter();
        filter.addAction(ConnectivityManager.CONNECTIVITY_ACTION);
        mConnectivityBroadcastReceiver = new ConnectivityBroadcastReceiver();

        //注册
        registerReceiver(mConnectivityBroadcastReceiver, filter);

       /**
        * 接受网络状态的改变
        */
    public class ConnectivityBroadcastReceiver extends BroadcastReceiver {

        @Override
        public void onReceive(Context context, Intent intent) {
            if (ConnectivityManager.CONNECTIVITY_ACTION.equals(intent.getAction())) {

                //如果能走到这,说明网络已经发生变化
                ConnectivityManager manager = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);
                NetworkInfo activeNetworkInfo = manager.getActiveNetworkInfo();
                if (activeNetworkInfo != null && activeNetworkInfo.isConnected()) {
                    if (ConnectivityManager.TYPE_WIFI == activeNetworkInfo.getType()) {
                        Toast.makeText(MainActivity.this, "当前是WIFI网络,请放心使用", Toast.LENGTH_SHORT).show();
                    } else if (ConnectivityManager.TYPE_MOBILE == activeNetworkInfo.getType()) {
                        Toast.makeText(MainActivity.this, "现在是移动网络,当心", Toast.LENGTH_SHORT).show();
                    } else {
                        Toast.makeText(MainActivity.this, "网络不可用,请检查网络", Toast.LENGTH_SHORT).show();
                    }

                } else {
                    Toast.makeText(MainActivity.this, "网络不可用,请检查网络", Toast.LENGTH_SHORT).show();
                }

            }
        }
    }

 //销毁广播

@Override
    protected void onDestroy() {
        super.onDestroy();
        unregisterReceiver(mConnectivityBroadcastReceiver);
    }

      

原创粉丝点击