android可以区分丢失的互联网连接和没有互联网连接?

时间:2013-08-17 20:33:59

标签: android android-wifi

当我按下我的应用程序上的按钮打开图像时,它会显示正在下载的图像的进度条,然后打开。如果没有wifi连接,则显示错误消息“无wifi”。我使用下面的代码检查wifi连接:

        ConnectivityManager cm =
                (ConnectivityManager)context.getSystemService(Context.CONNECTIVITY_SERVICE);

        NetworkInfo activeNetwork = cm.getActiveNetworkInfo();
        boolean isConnected = activeNetwork.isConnectedOrConnecting();
        boolean isWiFi = activeNetwork.getType() == ConnectivityManager.TYPE_WIFI;

我想实现连接丢失时显示的错误消息。因此,如果您点击图像并在下载时关闭wifi,则会显示一条消息“wifi已断开连接”。

这可能吗?无论连接是丢失还是没有wifi,你所做的就是检查是否有可用的连接是同一件事

2 个答案:

答案 0 :(得分:0)

当Wi-Fi的连接状态发生变化时,您需要使用BroadcastReceiver

在注册BroadcastReceiver之前设置以下内容:

private class ConnectionChangeReceiver extends BroadcastReceiver {
public void onReceive( Context context, Intent intent ) {
Log.d(tag, "Inside Broadcast Reciever");
CheckWifiStatus();
}
}

private void RegisterWifiWatcher()
{
if(wifiWatcher == null)
wifiWatcher = new ConnectionChangeReceiver();

    final IntentFilter intentFilter= new IntentFilter();
    intentFilter.addAction("android.net.wifi.WIFI_STATE_CHANGED");
    intentFilter.addAction("android.net.wifi.STATE_CHANGE");    
    registerReceiver(wifiWatcher, intentFilter);
}

WIFI_STATE_CHANGED:

广播意图操作,表示已启用,禁用,启用,禁用或未知Wi-Fi。

清单中的权限:

<user-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<user-permission android:name="android.permission.ACCESS_WIFI_STATE" />

注意: 我们针对不同的WiFi状态接收的广播意图具有附加功能以及您可以访问的广播意图以确定WiFi连接的不同状态。

答案 1 :(得分:0)

当然可能。添加上述答案的另一个选择是:

如果首先提供无线网络,您可以查看您的代码。

然后开始下载图像,如果在此期间发现异常,请将Wi-Fi断开连接。