Android网络可达性(离线模式)?

时间:2015-02-26 19:53:09

标签: c# android xamarin connectivity

所以我在我的应用程序中调用了几个不同的Web服务,但我想检查设备是否能够在调用服务之前连接到Internet。

首先我创建了一个静态标志。

public static bool IsOfflineMode = false;

在调用每个服务之前,我添加以下内容:

if(IsOfflineMode) {
    return;
}

这就是我检查设备是否在线的方式。

public bool isConnected()
{
    ConnectivityManager connectManager = (ConnectivityManager)GetSystemService (Context.ConnectivityService);
    NetworkInfo netInfo = connectManager.ActiveNetworkInfo;

    if (netInfo != null && netInfo.IsConnectedOrConnecting) {
        NetworkInfo wifi = connectManager.GetNetworkInfo (ConnectivityType.Wifi);
        NetworkInfo mobile = connectManager.GetNetworkInfo (ConnectivityType.Mobile);

        if ((mobile != null && mobile.IsConnectedOrConnecting) || (wifi != null && wifi.IsConnectedOrConnecting)) {
            return true;
        } else { 
            return false;
        }
    } else {
        return false;
    }
}

然后将isConnected()的值分配给IsOfflineMode

IsOfflineMode = !isConnected ();

但我不想每次都致电isConnected()

如何设置触发器,以便在设备离线/在线时更改IsOfflineMode的值?

感谢您的时间。

1 个答案:

答案 0 :(得分:2)

创建BroadcastReceiver响应操作<action android:name="android.net.conn.CONNECTIVITY_CHANGE"/>

希望它有所帮助!