NetworkInfo.IsConnected Ссылка на объект не установлена ​​для экземпляра объекта на xamarin

Я пытаюсь определить связь с 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 ответ

Решение

Если вы не подключены к интернету, 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;
Другие вопросы по тегам