Определить, есть ли на моем устройстве интернет - PullRequest
2 голосов
/ 23 июня 2011

Я хочу, чтобы мое приложение могло определять, подключено ли мое устройство к Интернету или нет. Я написал этот код, но он не работает. Вот код:

package mi.internet;

import android.app.Activity;
import android.app.AlertDialog;
import android.content.Context;
import android.content.Intent;
import android.net.ConnectivityManager;
import android.net.NetworkInfo;
import android.os.Bundle;
import android.widget.Toast;

public class navegando extends Activity {
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        comprobar();
    }

    private void comprobar() {
        Context context = null;
        // TODO Auto-generated method stub
        if(navegando.isOnline(context)== false) {
            new AlertDialog.Builder(this).setTitle("Advertencia").setMessage("No hay internet").setNeutralButton("Close", null).show();
           finish();
        }
    }
public static boolean isOnline(Context ctx) {
    ConnectivityManager connectivity = (ConnectivityManager)ctx.getSystemService(Context.CONNECTIVITY_SERVICE);
    if (connectivity != null) 
    {
        NetworkInfo[] network_info = connectivity.getAllNetworkInfo();
        if (network_info != null)
            for (int i = 0; i < network_info.length; i++)
                if (network_info[i].getState() == NetworkInfo.State.CONNECTED)
                    return true;
    }

    return false;
}
}

спасибо!


Спасибо за все ответы. Я новичок, и я не знаю, как мне использовать этот код. Когда мое приложение запустится, я хочу, чтобы в случае отсутствия подключения к Интернету на экране отображалось сообщение о том, что подключение к Интернету отсутствует, и завершение действия.

Танк снова!

Ответы [ 3 ]

6 голосов
/ 23 июня 2011

Пожалуйста, попробуйте ниже код.Он проверяет наличие или отсутствие подключения к Интернету на устройстве.

public boolean CheckInternet() 
{
    ConnectivityManager connec = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);
    android.net.NetworkInfo wifi = connec.getNetworkInfo(ConnectivityManager.TYPE_WIFI);
    android.net.NetworkInfo mobile = connec.getNetworkInfo(ConnectivityManager.TYPE_MOBILE);

    // Here if condition check for wifi and mobile network is available or not.
    // If anyone of them is available or connected then it will return true, otherwise false;

    if (wifi.isConnected() || mobile.isConnected()) {
        return true;
    } 
    return false;
}

Пожалуйста, добавьте ниже разрешение в файле манифеста Android.

    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
   <uses-permission android:name="android.permission.INTERNET" /> 
4 голосов
/ 23 июня 2011
private boolean isNetworkAvailable() 
{
    ConnectivityManager connectivityManager 
          = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);
    NetworkInfo activeNetworkInfo = connectivityManager.getActiveNetworkInfo();
    return activeNetworkInfo != null;
}
1 голос
/ 23 июня 2011

Сначала дайте разрешение

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

и затем в вашей деятельности

private boolean isNetworkAvailable() {
    ConnectivityManager cm
      = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);
    NetworkInfo ni= cm.getActiveNetworkInfo();
    return ni != null;
}

надеюсь, что это сработает для вас

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...