NetworkInfo.IsConnected Ссылка на объект не установлена ​​для экземпляра объекта на xamarin - PullRequest
0 голосов
/ 03 июля 2018

Я пытаюсь определить связь с Xamarin Android.

Когда я подключен к Wi-Fi или в роуминге, у меня нет ошибок.

Но когда я не подключен к Интернету, у меня возникает ошибка System.NullReferenceException и происходит сбой приложения.

ConnectivityManager connectivityManager = (ConnectivityManager)GetSystemService(ConnectivityService);
NetworkInfo info = connectivityManager.ActiveNetworkInfo;

bool isOnline = info.IsConnected; //error is here

Обычно bool isConnected должен иметь значение false. Но я не знаю, почему он на нуле.

Как я могу это исправить?

1 Ответ

0 голосов
/ 03 июля 2018

, если вы не подключены к Интернету, connectivityManager.ActiveNetworkInfo более вероятно возвращает ноль, поэтому попытка получить доступ к свойству IsConnected нулевого объекта приводит к NullReferenceException

Быстрое исправление:

//Use a ternary expression to evaluate whether info equals null, if so set
//bool to false, else use the IsConnected property
bool isOnline = info == null ? false : info.IsConnected;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...