简单判断当前网络状态

import android.content.Context;
import android.net.ConnectivityManager;
import android.net.NetworkInfo;

public class NetworkUtils {
    //为什么要串上下文对象  因为这是一个单独java类所以获取不到Android
    public static boolean getNetwork(Context context) {
        boolean boo = false;
        ConnectivityManager connectionManager = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);
        NetworkInfo networkInfo = connectionManager.getActiveNetworkInfo();
        if (networkInfo != null && networkInfo.isAvailable()) {
            boo = true;
        } else {
            boo = false;
        }
        return boo;
    }

}

调用方法 判断吐司

package com.example.day18;

import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.content.IntentFilter;
import android.net.ConnectivityManager;
import android.net.NetworkInfo;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.widget.Toast;

import com.example.day18.util.NetWorkHttps;

public class MainActivity extends AppCompatActivity {
    private NetworkChangeReceiver mNetWork;
    private String mUrl = "http://api.expoon.com/AppNews/getNewsList/type/1/p/";

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
      /*  if (NetWorkHttps.getNetWork(MainActivity.this)) {
            Toast.makeText(MainActivity.this, "当前网络可用", Toast.LENGTH_SHORT).show();
        } else {
            Toast.makeText(MainActivity.this, "当前网络不可用", Toast.LENGTH_SHORT).show();
        }*/
           regiterReceiver();
    }

    //动态注册 也就是把静态注册的参数  咱们用Java代码实现
    private void regiterReceiver() {
        IntentFilter intentFilter = new IntentFilter();
        intentFilter.addAction("android.net.conn.CONNECTIVITY_CHANGE");
        mNetWork = new NetworkChangeReceiver();
        registerReceiver(mNetWork, intentFilter);
    }

    class NetworkChangeReceiver extends BroadcastReceiver {
        @Override
        public void onReceive(Context context, Intent intent) {
            //连接管理的类   设计模式  单例模式
            ConnectivityManager connectionManager = (ConnectivityManager) getSystemService(CONNECTIVITY_SERVICE);
            NetworkInfo networkInfo = connectionManager.getActiveNetworkInfo();
            if (networkInfo != null && networkInfo.isAvailable()) {
                switch (networkInfo.getType()) {
                    case ConnectivityManager.TYPE_MOBILE:
                        Toast.makeText(context, "正在使用2G/3G/4G网络", Toast.LENGTH_SHORT).show();
                        break;
                    case ConnectivityManager.TYPE_WIFI:
                        Toast.makeText(context, "正在使用wifi上网", Toast.LENGTH_SHORT).show();
                        break;
                    default:
                        break;
                }
            } else {
                Toast.makeText(context, "当前无网络连接", Toast.LENGTH_SHORT).show();
            }
        }
    }

    @Override
    protected void onDestroy() {
        super.onDestroy();
        if (mNetWork!=null){
            unregisterReceiver(mNetWork);
        }
    }
}

以上方式为简单写法 如有造成困扰 请多见谅

猜你喜欢

转载自blog.csdn.net/qq_43603324/article/details/84140874
今日推荐