我需要检测Android设备是否已连接到Internet.
本NetworkInfo类提供了一个非静态方法isAvailable()听起来很完美.
问题是:
NetworkInfo ni = new NetworkInfo();
if (!ni.isAvailable()) {
// do something
}
Run Code Online (Sandbox Code Playgroud)
抛出此错误:
The constructor NetworkInfo is not visible.
Run Code Online (Sandbox Code Playgroud)
安全的赌注是有另一个类返回一个NetworkInfo对象.但我不知道哪个.
在.NET中检查Internet连接的最快,最有效的方法是什么?
如何在JavaScript中检测Internet连接是否脱机?
你如何检查是否有使用Javascript的互联网连接?这样我可以有一些条件说"在生产过程中使用谷歌缓存版本的JQuery,在开发期间使用该版本或本地版本,具体取决于互联网连接".
我知道这个问题似乎是许多其他问题的愚蠢,但是,我觉得这个简单的案例并没有得到很好的解释.来自Android和BlackBerry背景,HTTPUrlConnection如果没有可用连接,立即发出请求失败.这似乎是完全理智的行为,我很惊讶地发现NSURLConnection在iOS中没有效仿它.
我知道Apple(以及其他扩展它的人)提供了一个Reachability帮助确定网络状态的类.我很高兴第一次看到这一点并完全期望看到类似的内容bool isNetworkAvailable(),但令我惊讶的是,我发现了一个复杂的系统,需要通知注册和回调,以及一堆看似不必要的细节.肯定有更好的办法.
我的应用程序已经优雅地处理连接失败,包括没有连接.用户会收到失败通知,然后应用程序继续运行.
因此我的要求很简单:我可以在所有HTTP请求之前调用单个同步函数来确定我是否应该打扰实际发送请求.理想情况下,它不需要设置,只返回一个布尔值.
这在iOS上真的不可能吗?
我需要告诉我的设备是否有Internet连接.我找到了许多答案,如:
private boolean isNetworkAvailable() {
ConnectivityManager connectivityManager
= (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfo activeNetworkInfo = connectivityManager.getActiveNetworkInfo();
return activeNetworkInfo != null;
}
Run Code Online (Sandbox Code Playgroud)
(摘自检测Android上是否有可用的Internet连接.)
但这是不对的,例如,如果我连接到无法访问Internet的无线网络,此方法将返回true ... 是否有方法可以判断设备是否具有Internet连接,而不是仅仅连接什么?
对于iOS 9,我使用Reachability公共类来检查设备是否连接到互联网.我将Swift 2代码转换为Swift 3,而Reachability不再适用.有人能告诉我如何检查iOS 10上的互联网连接吗?谢谢!这是代码片段:
open class Reachability {
class func isConnectedToNetwork() -> Bool {
var zeroAddress = sockaddr_in()
zeroAddress.sin_len = UInt8(MemoryLayout.size(ofValue: zeroAddress))
zeroAddress.sin_family = sa_family_t(AF_INET)
let defaultRouteReachability = withUnsafePointer(to: &zeroAddress) {
SCNetworkReachabilityCreateWithAddress(nil, UnsafePointer($0))
}
var flags = SCNetworkReachabilityFlags()
if !SCNetworkReachabilityGetFlags(defaultRouteReachability!, &flags) {
return false
}
let isReachable = (flags.rawValue & UInt32(kSCNetworkFlagsReachable)) != 0
let needsConnection = (flags.rawValue & UInt32(kSCNetworkFlagsConnectionRequired)) != 0
return (isReachable && !needsConnection)
}
}
Run Code Online (Sandbox Code Playgroud) 如何从我的开发机器上运行的PHP脚本检查我是否连接到互联网?
我运行脚本使用wget下载一组文件(可能存在也可能不存在).如果我在没有连接的情况下尝试下载,wget会继续查看下一个认为该文件不存在的内容.
我正在尝试使用以下方法检查Android上的Internet连接.我有Wi-Fi连接.
private boolean checkInternetConnection() {
ConnectivityManager cm = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);
// Test for connection
if (cm.getActiveNetworkInfo() != null
&& cm.getActiveNetworkInfo().isAvailable()
&& cm.getActiveNetworkInfo().isConnected()) {
return true;
}
else {
// No conection
return false;
}
}
Run Code Online (Sandbox Code Playgroud)
我断开我的电脑上网,然后尝试运行上述方法.它总是回归真实!?为什么?
我正在开发一种可通过LAN访问互联网的嵌入式设备.我现在正处于测试阶段,我想测试设备在连接到互联网时的性能.目前,设备通过集线器连接到路由器,我用它来监控Wireshark的数据包.什么是降低设备的互联网速度以模仿可能发生的情况的最佳方法?
我可以通过电脑来完成吗?我需要访问路由器吗?如果是这样,是否可以限制路由器接口中每个IP的速度?
实际上,一位朋友建议我购买一个usb2lan以太网卡,并将PC lan连接桥接到嵌入式设备,然后使用软件QoS限制器.你觉得它会起作用吗?