我正在尝试检测与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。但是我不知道为什么它为空。
我该如何解决?
答案 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;