我有一个应用程序,它依赖于网络连接和位置服务才能使用。启动应用程序后,我想检查用户是否具备这两种功能
如何编写此脚本,以便在用户的设备不符合这两个条件时,将阻止用户继续操作并显示一条警告,说明他们必须要继续执行这两项操作。
我认为这会在Application Delegate中的某个地方。任何建议都会很棒!谢谢大家!
答案 0 :(得分:2)
对于位置服务,您可以查看
[CLLocationManager locationServicesEnabled]
返回BOOL值
对于互联网可访问性,您可以使用apple提供的Reachability类 http://developer.apple.com/library/ios/#samplecode/Reachability/Introduction/Intro.html
使用这样的代码
Reachability *networkReachability = [Reachability reachabilityForInternetConnection];
NetworkStatus networkStatus = [networkReachability currentReachabilityStatus];
if (networkStatus == NotReachable) {
NSLog(@"There IS NO internet connection");
} else {
NSLog(@"There IS internet connection");
}
}
答案 1 :(得分:1)
CLLocationManager
提供了用于确定位置服务可用性的类方法:
+ (BOOL)locationServicesEnabled
+ (CLAuthorizationStatus)authorizationStatus
要检查互联网连接,请使用Apple的示例代码here。 之后检查
if ([CLLocationManager locationServicesEnabled] && isInternetAvailable)
{
//Do your code
}
else
{
//Alert to show that location manager is disabled or internet is not avaiable.
}
答案 2 :(得分:1)
您可以尝试使用此位置服务:
@property (nonatomic, readonly) CLAuthorizationStatus locationStatus
实现CLLocationManagerDelegate方法并跟踪当前位置授权状态
- (void)locationManager:(CLLocationManager *)manager didChangeAuthorizationStatus:(CLAuthorizationStatus)status {
self.locationStatus = status;
}
if (self.myManager.locationStatus == kCLAuthorizationStatusAuthorized)
据我所知[CLLocationManager locationServicesEnabled]
没有提供所需信息。
并使用Reachability检查连接(不确定如何找到它,它是ASIHTTPRequest的一部分)
[Reachability reachabilityForInternetConnection] isReachable]
[Reachability reachabilityForLocalWiFi] isReachable]
答案 3 :(得分:0)