2013-04-18 40 views
1

有谁知道如何以编程方式检测在Android的WiFi无法访问? 我有一个应用程序正在运行,我能够轻松检测网络连接的类型以及是否打开(NetworkInfo类),但我无法检测到无线网络已打开,但我无法在其他网络上建筑物的一侧,所以没有互联网。网络信息不断说网络的类型是WIFI,isConnected = true,getDetailedState = CONNECTED,所以这些对我没有帮助。如何在Android中检测到WIFI开启但无法访问?

+0

你是什么意思的“无线上网,但无法访问?”你的意思是说你已经连接到网络,但不能通过它发送任何数据,或者wifi已打开,但没有网络可以连接? – Catherine

+0

是的,我的意思是我打开WiFi打开我的手机上,然后走到远离路由器,所以我不能浏览网页,发送数据等......在这种情况下,依然的NetworkInfo报道相连。我使用此代码: 'ConnectivityManager厘米=(ConnectivityManager)context.getSystemService(Context.CONNECTIVITY_SERVICE); \t \t 的NetworkInfo NI = cm.getActiveNetworkInfo();' – MartinC

+0

你可能尝试通过Ping服务器,看是否出了平次检测呢? – Catherine

回答

0

检测WIFI已连接或打开。如果wifi没有连接到任何INTERNET连接,则显示消息“WIFI is unreachable or no INTERNET connection.

对于检查连接的WIFI,请使用以下代码。

ConnectivityManager connManager = (ConnectivityManager) getSystemService(CONNECTIVITY_SERVICE); 
NetworkInfo mWifi = connManager.getNetworkInfo(ConnectivityManager.TYPE_WIFI); 

if (mWifi.isConnected()) { 
    // Do whatever 
} 
+0

谢谢,但这不起作用。这是我已经得到的情况。 mWifi报告连接。问题在于我已经描述过,即使我的Wifi功能(或者必须将其打开)打开,我仍无法触及。 – MartinC

+0

然后你必须在特定的时间调用这个方法。 –

+0

这就是我所做的。我在不能触及的时候称呼它(无线网络图标只是一个小点)并检查日志。 – MartinC

相关问题