Как я могу надежно проверить сетевое подключение с Android?Android

Форум для тех, кто программирует под Android
Ответить Пред. темаСлед. тема
Anonymous
 Как я могу надежно проверить сетевое подключение с Android?

Сообщение Anonymous »

Я пытаюсь придумать, как заставить мое приложение периодически проверять, подключено ли устройство к сети. У меня есть следующий код для проверки сети:

Код: Выделить всё

public class NetworkHelper {

private static final String TAG = "NetworkHelper";

public static boolean isDeviceConnectedToNetwork(Context context) {
boolean isConnected = false;

try {
ConnectivityManager cm = (ConnectivityManager)
context.getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfo activeNetwork = cm.getActiveNetworkInfo();
isConnected = activeNetwork != null && activeNetwork.isConnectedOrConnecting();
Log.d(TAG, "Checking network: " + isConnected);
return isConnected;
} catch (NullPointerException e) {
return false;
}
}
Следующий код для периодического вызова NetworkHelper:

Код: Выделить всё

public class MQTTConnectionFragment extends Fragment {

...

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
networkCheckerThread = new HandlerThread("NetworkCheckerThread");
networkCheckerThread.start();

networkCheckerHandler = new Handler(networkCheckerThread.getLooper());
networkCheckerRunnable = () -> {
Log.d(TAG, "Running network check");
boolean isConnected = NetworkHelper.isDeviceConnectedToNetwork(getContext());
getActivity().runOnUiThread(() -> {
if (isConnected) {
connectionBox.setVisibility(View.VISIBLE);
disconnectButton.setVisibility(View.GONE);
loadingWheel.setVisibility(View.GONE);
noNetworkTextView.setVisibility(View.GONE);
} else {
connectionBox.setVisibility(View.GONE);
disconnectButton.setVisibility(View.GONE);
loadingWheel.setVisibility(View.GONE);
noNetworkTextView.setVisibility(View.VISIBLE);
}
networkCheckerHandler.postDelayed(networkCheckerRunnable,
isConnected ? 5000 : 3000);
});
};

networkCheckerHandler.postDelayed(networkCheckerRunnable, 200);

return view;

}
...
}
В журнале сообщается, что у меня всегда есть соединение, даже когда я отключаю Wi-Fi. Может ли это быть потому, что я использую AVD? Или я чего-то не вижу в своем коде? У меня какое-то время нет доступа к физическому устройству, и я подумал, что тестирование на AVD подойдет.


Подробнее здесь: https://stackoverflow.com/questions/786 ... d-reliably
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • Я не могу надежно проверить сетевое подключение (разработка Android)
    Anonymous » » в форуме JAVA
    0 Ответы
    18 Просмотры
    Последнее сообщение Anonymous
  • Я не могу надежно проверить сетевое подключение (разработка Android)
    Anonymous » » в форуме Android
    0 Ответы
    27 Просмотры
    Последнее сообщение Anonymous
  • Как я могу надежно проверить сетевое подключение с Android?
    Anonymous » » в форуме JAVA
    0 Ответы
    16 Просмотры
    Последнее сообщение Anonymous
  • Как я могу надежно проверить сетевое подключение с Android?
    Anonymous » » в форуме JAVA
    0 Ответы
    11 Просмотры
    Последнее сообщение Anonymous
  • Какая служба Windows обеспечивает сетевое подключение?
    Anonymous » » в форуме C#
    0 Ответы
    15 Просмотры
    Последнее сообщение Anonymous

Вернуться в «Android»