我想检查是否有任何互联网连接可用 - 即我可以启动预期会成功的网络请求。
IsCellularDataEnabled - 如果有GPRS / 3G /等可用,这是真的吗?
IsNetworkAvailble - 如果可以使用VOICE CALLS,这是否属实,或者这也与互联网有关?
IsCellularDataRoamingEnabled - 我是否应该关注这一点? (我知道数据漫游是什么......)
IsWifiAvailable - 如果这是假的,我仍然可以从3G上网。
所以我正在寻找的是:
if (/*something*/){ //you can use the internet
}
感谢
(编辑:我没有随时可用的设备,否则我只是尝试一下:))
答案 0 :(得分:2)
仅
if(NetworkInterface.GetIsNetworkAvailable()){
}
答案 1 :(得分:2)
IsNetworkAvailable 是真的,如果有某种数据连接可用,无论哪个(GPRS,3G,漫游,WiFi或通过USB线)。
如果通过移动数据连接连接手机,则IsCellularDataEnabled 为true。它不会向您提供有关语音呼叫的任何状态,只会提供数据。
IsCellularDataRoamingEnabled :用户通过第三方提供商(漫游)通过移动数据连接进行连接。您应该只使用最少量的流量,因为漫游数据通常对用户来说很昂贵。 (因此你可以检查这个状态)
如果您通过WiFi连接,则IsWifiAvailable 为真。如果为false,则可能通过3G等进行移动数据连接。
因此,如果您只想知道如果存在某种连接,则可以使用 IsNetworkAvailable - 所有其他状态仅向您提供有关何种连接的详细信息。
答案 2 :(得分:0)
您的问题包含错误的假设。
您想知道是否存在连接,因此您的请求可能会成功。但是,只有反对派才是真实的。你只能知道,如果没有连接,请求肯定会失败。
即使有可用的外部网络连接,也有很多原因可能无法成功提供网络请求。
即使有连接,您必须代码才能处理请求失败。
即使存在连接,也可以阻止请求成功的事情: