未将NetworkInfo.IsConnected对象引用设置为xamarin上的对象实例

时间:2018-07-03 18:28:43

标签: c# android visual-studio xamarin connectivity

我正在尝试检测与Xamarin Android的连接。

当我连接wifi或漫游时,我没有任何错误。

但是当我没有连接到Internet时,就会遇到System.NullReferenceException错误,并且应用程序崩溃。

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

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

通常,bool isConnected应该变为false。但是我不知道为什么它为空。

我该如何解决?

1 个答案:

答案 0 :(得分:2)

如果您未连接到互联网,则connectivityManager.ActiveNetworkInfo很可能返回null,因此尝试访问null对象的属性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;