问题
Some lines of code? Any experience?
回答1:
You can use Apple's Reachability code to retrieve this information:
Example:
Reachability *reach = [Reachability reachabilityForLocalWiFi];
[reach startNotifier];
NetworkStatus stat = [reach currentReachabilityStatus];
if(stat & NotReachable) {
//not reachable
}
if(stat & ReachableViaWiFi) {
//reachable via wifi
}
if(stat & ReachableViaWWAN) {
//reachable via wwan
}
回答2:
Apple's Reachability
class will give you this information.
http://developer.apple.com/library/ios/#samplecode/Reachability/Introduction/Intro.html
回答3:
Since than I made a pretty simple block based Reachability wrapper that strips all the outdated C-like Reachability code, poured into a much more Cocoa form.
Usage like:
[EPPZReachability reachHost:hostNameOrIPaddress
completition:^(EPPZReachability *reachability)
{
if (reachability.reachableViaCellular) [self doSomeLightweightStuff];
}];
See Reachability with blocks for everyday use at eppz!blog, or grab it directly from eppz!reachability at GitHub.
It also works with IP addresses, which turned out to be a pretty rare Reachability wrapper feature.
来源:https://stackoverflow.com/questions/5589324/how-to-detect-wheter-running-on-3g-or-wi-fi-on-iphone