验证可用的网络连接和启用位置服务以使用应用程序 [重复]

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 链接

【讨论】:

以上是关于验证可用的网络连接和启用位置服务以使用应用程序 [重复]的主要内容,如果未能解决你的问题,请参考以下文章

MySQL启用SSL连接

如何在 AWS Cognito 上使用未经身份验证的用户在 React 上启用 AWS 位置服务地图?

启用位置服务后几秒钟后位置可用

台式win7有线网络连接已启用但不可用该怎么办?

怎么连接sqlserver数据库

验证有可用网络连接的最简单方法是啥?