2013-07-24 37 views
0

我开发了一个Android应用程序,它在Wifi AP模式下作为Socket服务器工作。某些客户端使用我的应用程序设置Wifi连接和套接字连接当套接字连接时,我断开与客户端的Wifi连接,但是在我的服务器应用程序中没有异常,也没有套接字的读取方法返回-1。我的问题是:当Wifi断开时,Android服务器端的Socket如何知道?

  1. 如何检测破wifi连接
  2. 如何检测哪些客户端的WiFi连接断开

感谢。

回答

0

在一个线程

public static boolean checkNetworkConnection(Context context) 
{ 

    final ConnectivityManager connMgr = (ConnectivityManager)context.getSystemService(Context.CONNECTIVITY_SERVICE); 

    final android.net.NetworkInfo wifi =connMgr.getNetworkInfo(ConnectivityManager.TYPE_WIFI); 
    final android.net.NetworkInfo mobile =connMgr.getNetworkInfo(ConnectivityManager.TYPE_MOBILE); 

    if(wifi.isAvailable()||mobile.isAvailable()) 
     return true; 
    else 
     return false; 
} 
+0

由于使用此。但在我的情况下,我的AP有几个Wifi连接。 getNetworkInfo()方法返回哪一个? – yinhao

+0

@yinhao尝试WifiManager wifi =(WifiManager)(this.getSystemService(Context.WIFI_SERVICE)); WifiInfo wifiInfo = wifiManager.getConnectionInfo(); wifiInfo有一些状态 – zt9788

+0

再次感谢您的回复。但是有几个Wifi连接。 getConnectionInfo返回哪一个?我认为这种方法在Wifi客户端而不是AP服务器端使用。因为在客户端,只有一个Wifi连接。 – yinhao

相关问题