2013-08-17 75 views
0

当我按下我的应用程序上的按钮打开图像时,它显示正在下载的图像的进度条,然后打开。如果没有WiFi连接,则显示“无WiFi”错误消息。我用下面的代码来检查WiFi连接:Android可以区分丢失的互联网连接和没有互联网连接吗?

 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,您正在检查是否有可用的连接,这是相同的事情

回答

0

您需要使用BroadcastReceiver,当Wi-Fi的连接状态有连接时改变。

注册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状态广播意图有演员和他们一起,你可以访问,以确定无线网络的不同状态连接。

0

当然有可能。在上面的答案中增加另一个选项:

如果无线网络可用,您可以检查您的代码。

然后开始下载图像,如果在此期间发现异常,则将消息wi-fi烤干。