Android网络判断,移动流量或WiFi网络,广播监听网络动态注册

 自定义一个网络判断工具类

public class NetWorkUtils {
    public static boolean isNetWorkConnection(Context context) {
        //获取网络状态管理者
        ConnectivityManager manager = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);
        //得到网络状态信息
        NetworkInfo info = manager.getActiveNetworkInfo();
        if (info != null) {
            return info.isAvailable();
        }
        return false;
    }

    public static boolean isMobile(Context context) {
        //获取网络状态管理者
        ConnectivityManager manager = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);
        //得到网络状态信息
        NetworkInfo mobile = manager.getNetworkInfo(ConnectivityManager.TYPE_MOBILE);
        if (mobile != null) {
            return mobile.isAvailable();
        }
        return false;
    }

    public static boolean isWifi(Context context) {
        //获取网络状态管理者
        ConnectivityManager manager = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);
        //得到网络状态信息
        NetworkInfo wifi = manager.getNetworkInfo(ConnectivityManager.TYPE_WIFI);
        if (wifi != null) {
            return wifi.isAvailable();
        }
        return false;
    }
}

动态注册广播--监听网络状态--移动网络--WIFI

  //网络判断---->注册广播---->MyBroadcastReceiver
        MyBroadcastReceiver receiver = new MyBroadcastReceiver();
        IntentFilter intentFilter = new IntentFilter();
        intentFilter.addAction(ConnectivityManager.CONNECTIVITY_ACTION);
        getActivity().registerReceiver(receiver,intentFilter);

自定义内部类广播: 

 //定义广播监听网络状态
    private class MyBroadcastReceiver extends BroadcastReceiver {

        @Override
        public void onReceive(Context context, Intent intent) {
            boolean netWorkConnection = NetWorkUtils.isNetWorkConnection(context);
            //有网识别网络类型
            if (netWorkConnection) {
                //调用网络请求方法---在这可以写你需要的方法--有网络便执行
                getHttpdata();
                boolean wifi = NetWorkUtils.isWifi(context);
                if (wifi) {
                    Toast.makeText(context, "wifi", Toast.LENGTH_SHORT).show();
                }
                boolean mobile = NetWorkUtils.isMobile(context);
                if (mobile) {
                    Toast.makeText(context, "mobile", Toast.LENGTH_SHORT).show();
                }
            } else {//没网弹框--->设置网络提示
                AlertDialog.Builder builder = new AlertDialog.Builder(context);
                builder.setTitle("网络提示");
                builder.setMessage("当前网络不可用,请设置网络");
                //yes按钮
                builder.setPositiveButton("设置", new DialogInterface.OnClickListener() {
                    @Override
                    public void onClick(DialogInterface dialog, int which) {
                        //去设置网络界面
                        startActivity(new Intent(Settings.ACTION_WIRELESS_SETTINGS));
                    }
                });
                //no按钮
                builder.setNegativeButton("取消", new DialogInterface.OnClickListener() {
                    @Override
                    public void onClick(DialogInterface dialog, int which) {

                    }
                });
                builder.show();
            }
        //不需要的时候取消注册
        context.unregisterReceiver(this);
        }
    }
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 4
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值