验证可用的网络连接和启用位置服务以使用应用程序 [重复]
Posted
技术标签:
【中文标题】验证可用的网络连接和启用位置服务以使用应用程序 [重复]【英文标题】:Verify Network Connection Available and Location Services Enabled to use App [duplicate] 【发布时间】:2013-02-07 21:03:38 【问题描述】:我有一个需要使用网络连接和定位服务的应用程序。启动应用程序时,我想检查用户是否同时具备这两种能力
网络连接可用 已启用定位服务我将如何编写此脚本,以便如果用户的设备不满足这两个条件,则阻止用户继续操作,并显示一个警告,提示他们必须完成这两项操作才能继续。
我会假设这在应用程序委托中的某个地方。任何建议都会很棒!谢谢大家!
【问题讨论】:
这两个问题已经被问过好几次了,分别是:1.***.com/questions/1083701/… 2.***.com/questions/4700987/… 【参考方案1】:位置服务你可以查
[CLLocationManager locationServicesEnabled]
返回 BOOL 值
对于互联网可达性,您可以使用苹果提供的可达性类 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");
【讨论】:
【参考方案2】: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.
【讨论】:
【参考方案3】:你可以试试这个定位服务:
@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]
【讨论】:
【参考方案4】:希望对你有帮助..
要检查可用的网络连接:打开this apple document 链接。
要检查已启用位置服务:打开this 链接
【讨论】:
以上是关于验证可用的网络连接和启用位置服务以使用应用程序 [重复]的主要内容,如果未能解决你的问题,请参考以下文章