广播时刻监听网络状态

来源:互联网 发布:淘宝装修 客户达 编辑:程序博客网 时间:2024/05/16 19:31
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
public class MainActivity extends AppCompatActivity {    private MyBroadcaseReceiver receiver;    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);        IntentFilter filter = new IntentFilter();        filter.addAction(ConnectivityManager.CONNECTIVITY_ACTION);        receiver = new MyBroadcaseReceiver();        this.registerReceiver(receiver, filter);    }    class MyBroadcaseReceiver extends BroadcastReceiver {        @Override        public void onReceive(Context context, Intent intent) {//            判断当前传过来的Action是否是哪里的断网Actiion            if (intent.getAction().equals(ConnectivityManager.CONNECTIVITY_ACTION)) {                ConnectivityManager manager = (ConnectivityManager) getSystemService(Context                        .CONNECTIVITY_SERVICE);                NetworkInfo info = manager.getActiveNetworkInfo();                //判断有网络或无网络                if (info != null && info.isConnected()) {                    //如果有网,判断当前是否是WIFI或移动数据或者其他第三方网络(VPN等)                    if (ConnectivityManager.TYPE_WIFI == info.getType()) {                        Toast.makeText(context, "WIFI已链接,可以下载数据", Toast.LENGTH_SHORT).show();                    } else if (ConnectivityManager.TYPE_MOBILE == info.getType()) {                        Toast.makeText(context, "当前使用的是移动数据,请谨慎使用", Toast.LENGTH_SHORT).show();                    } else {                        Toast.makeText(context, "链接的第三方网络,请谨慎使用", Toast.LENGTH_SHORT).show();                    }                } else {//如果没有网络弹出吐司,也可以弹出对话框                    Toast.makeText(context, "当前没有网络,请链接网络", Toast.LENGTH_SHORT).show();                }            }        }    }}

原创粉丝点击