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;