Как я должен go впереди и проверить мобильность передачи данных - PullRequest
0 голосов
/ 04 февраля 2020

Мне нужно сообщение, чтобы показать, если нет соединения inte rnet. В настоящее время, если Wi-Fi выключен, то тост метод будет работать и не будет двигаться вперед. Однако, если я включу свои мобильные данные даже без плана обслуживания, он все равно откроет пустое действие.

вот код, который я получил отсюда

public static boolean isInternetAvailable(Context context)
{
    NetworkInfo info = (NetworkInfo) ((ConnectivityManager)
            context.getSystemService(Context.CONNECTIVITY_SERVICE)).getActiveNetworkInfo();

    if (info == null)
    {
        Log.d(TAG,"no internet connection");
        return false;
    }
    else
    {
        if(info.isConnected())
        {
            Log.d(TAG," internet connection available...");
            return true;
        }
        else
        {
            Log.d(TAG," internet connection");
            return true;
        }

, и это ниже в моем методе onClick.

newsButton.setOnClickListener(new View.OnClickListener() {
        @Override


        public void onClick(View view) {


if(CheckNetwork.isInternetAvailable(MainActivity.this)) //returns true if internet available
            {

                moveToNews();
            }
            else
            {
                Toast.makeText(MainActivity.this,"Please Check Your Internet Connection and Try Again",Toast.LENGTH_LONG*4000).show();
            }

Ответы [ 2 ]

1 голос
/ 04 февраля 2020

Для проверки соединения inte rnet -

private boolean isNetworkConnected() {
    ConnectivityManager cm = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);

    return cm.getActiveNetworkInfo() != null && cm.getActiveNetworkInfo().isConnected();
}

В файле Menifest -

<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
0 голосов
/ 11 февраля 2020

проверьте мой код ниже

[1] .Добавьте ниже строки inte rnet разрешение в AndroidManifest. xml

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

[2]. На вашей MainActivity или родительской активности, которую вы хотите отобразить или переходите к следующей активности, добавьте ниже код

[2.1] Глобально объявите ниже переменную

private boolean isInternetConnected;

[2.2] добавить строку ниже в onCreate ()

isInternetConnected = isNetworkConnected(getApplicationContext());

[2.3] добавить ниже метод

public boolean isNetworkConnected(Context context)
    {
        if(context != null)
        {
            ConnectivityManager cm = (ConnectivityManager) context.getApplicationContext().getSystemService(Context.CONNECTIVITY_SERVICE);
            if (cm != null) {
                NetworkInfo ni = cm.getActiveNetworkInfo();
                if (ni == null) {
                    return false;
                } else
                    return true;
            }
            else
            {
                return true;
            }
        }
        else
        {
            return true;
        }
    }

[3]. добавьте следующий код в onCreate () ниже этой строки: i sInternetConnected = isNetworkConnected(getApplicationContext());

if(isInternetConnected){
  //Move to another Activity or display Toast
}
else{
  //Toast of not connected with Internet 
}

ЭТО;) !!

...