как создать проверку NetworkConnectionStatus в файле класса и использовать в основной деятельности - PullRequest
0 голосов
/ 25 сентября 2019

добавьте это в файл .class и используйте в MainActivity.java как создать проверку NetworkConnectionStatus в файле класса и использовать в mainacctivity


Private void checkNetworkConnectionStatus()   {
        boolean wifiConnected;
        boolean mobileConnected;
        ConnectivityManager connMgr = (ConnectivityManager)
                getSystemService(Context.CONNECTIVITY_SERVICE);
        NetworkInfo activeInfo = connMgr.getActiveNetworkInfo();
        if (activeInfo != null && activeInfo.isConnected()){ //connected with either mobile or wifi
            wifiConnected = activeInfo.getType() == ConnectivityManager.TYPE_WIFI;
            mobileConnected = activeInfo.getType() == ConnectivityManager.TYPE_MOBILE;
            if (wifiConnected){ //wifi connected

            }
            else if (mobileConnected){ //mobile data connected

            }
        }
        else { //no internet connection

        }
    }

Ответы [ 3 ]

1 голос
/ 25 сентября 2019

Файл манифеста

<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />

Попробуйте это

public class NetworkUtil { 
    public static final int TYPE_WIFI = 1;
    public static final int TYPE_MOBILE = 2;
    public static final int TYPE_NOT_CONNECTED = 0;

  public int getConnectivityStatus(Context context) {
        ConnectivityManager cm = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);

        NetworkInfo activeNetwork = cm.getActiveNetworkInfo();
        if (null != activeNetwork) {
            if(activeNetwork.getType() == ConnectivityManager.TYPE_WIFI)
                return TYPE_WIFI;

            if(activeNetwork.getType() == ConnectivityManager.TYPE_MOBILE)
                return TYPE_MOBILE;
        } 
        return TYPE_NOT_CONNECTED;
    }

  public boolean isInternetAvailable() {
    try {
        InetAddress ipAddr = InetAddress.getByName("www.google.com"); 
        return !ipAddr.equals("");

        } catch (Exception e) {
            return false;
    }
  }

  public boolean isNetworkConnected() {
    ConnectivityManager cm = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);
    return cm.getActiveNetworkInfo() != null && cm.getActiveNetworkInfo().isConnected();
  }
}
0 голосов
/ 25 сентября 2019

Просто укажите контекст, вызывая его для другого класса.

Сначала объявите это глобально в вашей MainActivity.

Context context = this;

Это то, как вы вызываете свой класс, предоставленный вашим текущим контекстом активности.

new CheckNet().checkNetworkConnectionStatus(context);

, затем измените ваш класс методом, для которого требуется параметр: context

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

class CheckNet {

    void checkNetworkConnectionStatus(Context context) {
        boolean wifiConnected;
        boolean mobileConnected;
        ConnectivityManager connMgr = (ConnectivityManager)context.getSystemService(Context.CONNECTIVITY_SERVICE);
        NetworkInfo activeInfo = connMgr.getActiveNetworkInfo();
        if (activeInfo != null && activeInfo.isConnected()) { //connected with either mobile or wifi
            wifiConnected = activeInfo.getType() == ConnectivityManager.TYPE_WIFI;
            mobileConnected = activeInfo.getType() == ConnectivityManager.TYPE_MOBILE;
            if (wifiConnected) { //wifi connected

            } else if (mobileConnected) { //mobile data connected

            }
        } else { //no internet connection

        }
    }

}
0 голосов
/ 25 сентября 2019

в файле манифеста,

<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />

в Activity. Этот метод проверяет, подключено ли мобильное устройство к Интернету, и возвращает true, если подключено:

private boolean isNetworkConnected() {
ConnectivityManager cm = (ConnectivityManager) 
getSystemService(Context.CONNECTIVITY_SERVICE);
return cm.getActiveNetworkInfo() != null && 
cm.getActiveNetworkInfo().isConnected();

}

...