Проверьте интернет-соединение в Android - PullRequest
0 голосов
/ 23 мая 2011

Я пытаюсь получить и отправить некоторые данные с сервера через веб-сервис.Обязательная вещь, которую я должен сделать, это проверка подключения.Что я сделал сейчас, так это то, что я написал код проверки подключения в каждом действии, прежде чем он отправляет / извлекает набор результатов с сервера.Я знаю, что это не лучший способ, которым я должен кодировать.Вместо этого эта проверка подключения должна запускать что-то вроде фона (за экранами) и оповещать пользователя, когда WIFI / 3G становится низким / выходит из строя.

Каков наилучший способ сделать это?

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

Спасибо.

Ответы [ 4 ]

2 голосов
/ 23 мая 2011

Вы можете зарегистрировать BroadcastReceiver для прослушивания изменений подключения.Подробный пост можно найти здесь .

2 голосов
/ 23 мая 2011

Привет, я делаю так, может быть, там лучше

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

    // test for connection
    if (cm.getActiveNetworkInfo() != null
            && cm.getActiveNetworkInfo().isAvailable()
            && cm.getActiveNetworkInfo().isConnected()) {
        return true;
    } else {
        //no conection
        return false;
    }
}
1 голос
/ 23 мая 2011
public static boolean isInternetAvailable(Context context){
        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);

        if(wifi.isConnected() || mobile.isConnected()){
            // Check for web site       
            try{
                // Create a URL for the desired page
                URL url = new URL("http://www.google.com");
                // Read all the text returned by the server
                BufferedReader in = new BufferedReader(new InputStreamReader(url.openStream()));
                in.close();
                return true;
            } catch (Exception e) {
                return false;
            }
        }

        return false;
    }   

Метод также проверяет, доступен ли определенный веб-сайт в этом случае www.google.com. Это может быть полезно, поскольку устройство может быть подключено к маршрутизатору WLAN, у которого нет доступа к Интернету. В этом случае wifi.isConnected() также вернет true, хотя Интернет недоступен.

0 голосов
/ 23 мая 2011

для проверки интернет-соединения в Android ..

public static boolean isOnline(Activity act) 
     {
         ConnectivityManager cm = (ConnectivityManager)act.getSystemService(Context.CONNECTIVITY_SERVICE);
         NetworkInfo netInfo = cm.getActiveNetworkInfo();
        if (netInfo != null && netInfo.isConnectedOrConnecting()) 
        {
            return true;
        }
        return false;

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