广播中判断网络

本文介绍了一个用于Android应用的网络状态判断工具类,包括判断网络是否可用、WiFi是否连接及移动数据是否开启的方法。同时,文章展示了如何通过广播接收器实时监听网络状态变化,并根据不同网络类型显示提示信息。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

//网络状态判断工具类
public class NetWorkUtils {
   //判断网络的方法
    public static boolean isNetWork (Context context) {
        ConnectivityManager conn = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);
        //需要添加网络权限
        NetworkInfo info = conn.getActiveNetworkInfo();
        if(info!=null){
            return  info.isAvailable();
        }
        return false;
    }
    //判断WiFi是否可用
    public static boolean isWifi (Context context) {
        ConnectivityManager conn = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);
        //需要添加网络权限
        //NetworkInfo mWiFiNetworkInfo = mConnectivityManager.getNetworkInfo(ConnectivityManager.TYPE_WIFI);
        NetworkInfo info = conn.getNetworkInfo(conn.TYPE_WIFI);
        if(info!=null){
            return  info.isAvailable();
        }
        return false;
    }
    //判断流量
    public static boolean isMoble (Context context) {
        ConnectivityManager conn = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);
        //需要添加网络权限
        NetworkInfo info = conn.getNetworkInfo(conn.TYPE_MOBILE);
        if(info!=null){
            return  info.isAvailable();
        }
        return false;
    }
}

//
  //定义广播接收的方法
    private class NetworkBroadcas extends BroadcastReceiver {
        //重写接收广播的方法
        @Override
        public void onReceive(Context context, final Intent intent) {
            boolean b = NetWorkUtils.isNetWork(context);
            if(b){
                Toast.makeText(getActivity(), "有网", Toast.LENGTH_SHORT).show();
                getjson();
                boolean wifi = NetWorkUtils.isWifi(context);
                if(wifi){
                    Toast.makeText(getActivity(), "wifi", Toast.LENGTH_SHORT).show();
                }
                boolean moble = NetWorkUtils.isMoble(context);
                if(moble){
                    Toast.makeText(getActivity(), "手机流量大大的有", Toast.LENGTH_SHORT).show();
                }
            }else{
                Toast.makeText(getActivity(), "无网", Toast.LENGTH_SHORT).show();
                AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());
                builder.setTitle("网络提示");
                builder.setMessage("是否开启网络");
                builder.setPositiveButton("确定", new DialogInterface.OnClickListener() {
                    @Override
                    public void onClick(DialogInterface dialog, int which) {
                        Intent intent1 = new Intent(Settings.ACTION_WIFI_SETTINGS);
                        startActivity(intent1);
                    }
                });
                builder.setNegativeButton("取消", new DialogInterface.OnClickListener() {
                    @Override
                    public void onClick(DialogInterface dialog, int which) {
                        dialog.dismiss();
                    }
                });
                builder.show();
            }

        }
    }


    //通过代码动态注册广播
        NetworkBroadcas networkbroadcas =new  NetworkBroadcas();
        IntentFilter filter = new IntentFilter();
        filter.addAction(ConnectivityManager.CONNECTIVITY_ACTION);
        getActivity().registerReceiver(networkbroadcas,filter);
        
    //权限
  <uses-permission android:name="android.permission.INTERNET" />
  <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />





评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值