我是Iphone app开发的新手,所以我有几个问题。帮助我解决这个问题。
1)如何,iphone上的所有应用程序都会知道,当用户在设置中打开wifi按钮或手机按钮时,是否有可用的互联网连接?
2)如何区分wifi连接和蜂窝连接?
3)iphone中是否有类似于android概念的广播接收机制?
我搜索了许多用于互联网连接的链接,并了解了iPhone中的Reachibilty类,但我无法清楚地了解它是如何工作的?如果有任何一次可以给我链接,这可以解释我关于可达性的详细信息,那将是很棒的。或任何其他机制来实现上述功能。
我正在编写一个应用程序,我需要开始上传一些数据,当应用程序知道有可用的连接时,即使应用程序在后台或前台也应该发生这种情况。
提前致谢
答案 0 :(得分:0)
您应该使用课程Reachability
NetworkStatus netStatus = [curReach currentReachabilityStatus];
NSString* statusString= @"";
switch (netStatus)
{
case NotReachable:
{
statusString = @"Access Not Available";
//Minor interface detail- connectionRequired may return yes, even when the host is unreachable. We cover that up here...
break;
}
case ReachableViaWWAN:
{
statusString = @"Reachable WWAN";
break;
}
case ReachableViaWiFi:
{
statusString= @"Reachable WiFi";
break;
}
}
[[Reachability reachabilityForInternetConnection] startNotifier];
[[NSNotificationCenter defaultCenter]addObserver:self selector:@selector(someMethod:) name:kReachabilityChangedNotification object:nil];
答案 1 :(得分:0)
尝试使用此示例代码Sample和
https://github.com/tonymillion/Reachability
它还可以让您检查WiFi是否已启用:
Reachability* reachability = [Reachability sharedReachability];
[reachability setHostName:@"www.google.com"]; // set your host name here
NetworkStatus remoteHostStatus = [reachability remoteHostStatus];
if(remoteHostStatus == NotReachable) { }
else if (remoteHostStatus == ReachableViaWiFiNetwork) { }
else if (remoteHostStatus == ReachableViaCarrierDataNetwork) { }
答案 2 :(得分:0)
您可以为此link
中提供的内容使用Reachability类也会通过此链接,这将有助于您确定。
How to check for an active Internet connection on iOS or OSX?
或这个简单的代码行也很有用
Reachability *reachability = [Reachability reachabilityForInternetConnection];
NetworkStatus networkStatus = [reachability currentReachabilityStatus];
if (networkStatus == NotReachable) {
NSLog(@"There IS NO internet connection");
} else {
NSLog(@"There IS internet connection");
}
}