可能重复:
我需要检测安卓设备是否连接到互联网。
NetworkInfo
类提供了一个非静态方法 isAvailable()
听起来很完美。
问题是:
NetworkInfo ni = new NetworkInfo();
if (!ni.isAvailable()) {
// do something
}
抛出此错误:
The constructor NetworkInfo is not visible.
安全的赌注是有另一个类返回 NetworkInfo
对象。但我不知道是哪个。
- 如何让上面的代码片段工作?
- 我怎么能在在线文档中找到我需要的信息?
- 您能否为此类检测提出更好的方法?
原文由 Dan 发布,翻译遵循 CC BY-SA 4.0 许可协议
The
getActiveNetworkInfo()
method ofConnectivityManager
returns aNetworkInfo
instance representing the first connected network interface it can find ornull
if none of the interfaces are连接的。检查此方法是否返回null
应该足以判断互联网连接是否可用。您还需要:
在你的 android 清单中。
编辑:
请注意,拥有活动的网络接口并不能保证特定的网络服务可用。网络问题、服务器停机、低信号、强制门户、内容过滤器等都会阻止您的应用程序到达服务器。例如,在您收到来自 Twitter 服务的有效响应之前,您无法确定您的应用程序是否可以访问 Twitter。