Android 网络状态检测

Posted 点滴之水

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Android 网络状态检测相关的知识,希望对你有一定的参考价值。

package com.example.administrator.yunstore.net;

import android.app.AlertDialog;
import android.content.ComponentName;
import android.content.Context;
import android.content.DialogInterface;
import android.content.Intent;
import android.net.ConnectivityManager;
import android.net.NetworkInfo;

import com.example.administrator.yunstore.R;

/**
 * Created by Administrator on 2016/10/20.
 */

public class CheckNetException{

    private ConnectivityManager connectivityManager;
    private Context context;
    public CheckNetException(Context context){
        this.context=context;
    }

    /**
     * @return 网络是否连接
     */
    public boolean checkNetConn() {

        //得到网络链接管理器
        connectivityManager = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);
        //获取网络链接信息
        NetworkInfo activeNetworkInfo = connectivityManager.getActiveNetworkInfo();
        //判断网络是否链接
        if (activeNetworkInfo != null) {
            if (activeNetworkInfo.isConnected()) {
                return true;
            } else {
                return false;
            }
        }
        return false;
    }

    /**
     * 设置wifi
     */
    public void setNetWork(){
        AlertDialog.Builder alert=new AlertDialog.Builder(context);
        alert.setIcon(R.drawable.set);
        alert.setTitle("网络提示信息");
        alert.setMessage("网络不可用,如果继续,请先设置网络!");
        alert.setPositiveButton("设置网络", new DialogInterface.OnClickListener() {
            @Override
            public void onClick(DialogInterface dialog, int which) {

                Intent intent = null;
                /**
                 * 判断手机系统的版本!如果API大于10 就是3.0+
                 * 因为3.0以上的版本的设置和3.0以下的设置不一样,调用的方法不同
                 */
                if (android.os.Build.VERSION.SDK_INT > 10) {
                    intent = new Intent(android.provider.Settings.ACTION_WIFI_SETTINGS);
                } else {
                    intent = new Intent();
                    ComponentName component = new ComponentName(
                            "com.android.settings",
                            "com.android.settings.WirelessSettings");
                    intent.setComponent(component);
                    intent.setAction("android.intent.action.VIEW");
                }
                context.startActivity(intent);
        }
        });
        alert.setNegativeButton("暂不设置", new DialogInterface.OnClickListener() {
            @Override
            public void onClick(DialogInterface dialog, int which) {

            }
        });
        alert.create();
        alert.show();
    }

    /**
     * 判断网络为GPRS还是WIFI
     * 返回1:GPRS;
     * 返回2:WiFi;
     * 返回3:error;
     */
    public int judgeNew(){
        NetworkInfo.State gprs = connectivityManager.getNetworkInfo(ConnectivityManager.TYPE_MOBILE).getState();
        NetworkInfo.State wifi = connectivityManager.getNetworkInfo(ConnectivityManager.TYPE_WIFI).getState();
        if(gprs == NetworkInfo.State.CONNECTED || gprs == NetworkInfo.State.CONNECTING){
           // Toast.makeText(context, "This is gprs", Toast.LENGTH_SHORT).show();
            return 1;
        }
        if(wifi == NetworkInfo.State.CONNECTED || wifi == NetworkInfo.State.CONNECTING){
            //Toast.makeText(context, "This is wifi", Toast.LENGTH_SHORT).show();
            return 2;
        }
        return 3;
    }

}

 

以上是关于Android 网络状态检测的主要内容,如果未能解决你的问题,请参考以下文章

Android 网络状态检测

未连接蜂窝网络时,Android 仍会检测蜂窝信号强度

Android 通过广播获取网络状态

Android开发——WiFi信号检测

android webview 检测联网

HTTP状态码webview android, WebViewClient