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

NetworkInfo.IsConnected Object reference not set to an instance of an object on xamarin

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

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

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

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

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

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

我该如何解决?

如果您没有连接到互联网,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;