Android ContentProvider проверяет доступ к сети

1

есть ли способ использования ContentProvider, чтобы проверить, подключен ли мой телефон Android к Интернету?

благодаря

  • 1
    Как это возможно с помощью ContentProvider? Это возможно с помощью ConnectivityManager & NetworkInfo.
Теги:
android-contentprovider

4 ответа

1
Лучший ответ
// check internet connectivity
public static boolean isNetworkAvailable(Context context) {

    boolean networkStatus;
    try {
        ConnectivityManager connectivityManager = (ConnectivityManager) context
            .getSystemService(Context.CONNECTIVITY_SERVICE);
        NetworkInfo activeNetworkInfo = connectivityManager
            .getActiveNetworkInfo();

        networkStatus = (activeNetworkInfo != null && activeNetworkInfo.isConnected()) ? true : false;

    } catch (Exception e) {
        e.printStackTrace();
        DinotaLogger.log(e, Level.SEVERE);
        networkStatus = false;
    }

    return networkStatus;
}

Обязательно укажите файл манифеста. Если вы используете эмулятор для проверки этого, нажмите F8 чтобы отключить доступ к сети. Это отлично работает с эмулятором Android 2.3.3.

2

Я думаю, что вы хотите ConnectivityManager. Там пример здесь.

Это объясняет, как регистрироваться для уведомлений. Чтобы напрямую проверить, вы можете получить экземпляр ConnectivityManager:

ConnectivityManager mgr = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfo info = mgr.getActiveNetworkInfo();
boolean is_connected = info.isConnected();
boolean is_available = info.isAvailable();
  • 0
    Вероятно, это мой предпочтительный способ проверки подключения к сети. Вы можете продолжать опрашивать сетевое соединение перед каждым вызовом веб-службы, и метод NetworkInfo.isConnectingOrConnected () может быть весьма полезен.
1

Он скажет вам, что ваш Android подключен к Интернету.

Я использовал это:

public boolean isNetworkAvailable() {
            try{
                Context context = getApplicationContext();
                ConnectivityManager connectivity = (ConnectivityManager) 
                context.getSystemService(Context.CONNECTIVITY_SERVICE);
                if (connectivity == null) {

                }else{
                    NetworkInfo[] info = connectivity.getAllNetworkInfo();
                    if (info != null) {
                        for (int i = 0; i < info.length; i++) {
                            if (info[i].getState() == NetworkInfo.State.CONNECTED) {
                                return true;
                            }
                        }
                    }
                }
            }catch (Exception e) {
                System.out.println("error");
            }
            return false;
        }

Также поставьте:

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

эта строка для вашего манифеста Android.

Я использовал это в своем приложении.

1

этот код должен помочь вам запросить доступность сети передачи данных:

   public static boolean isDataNetworkAvailable(Context context){
        try{
            ConnectivityManager connectivityManager = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);
            NetworkInfo activeNetworkInfo = connectivityManager.getActiveNetworkInfo();
            return activeNetworkInfo != null;
        }
        catch (Exception e) { return false; }
    }

Ещё вопросы

Сообщество Overcoder
Наверх
Меню