为特定应用启用定位服务?

Posted

技术标签:

【中文标题】为特定应用启用定位服务?【英文标题】:Location Services enabled for specific app? 【发布时间】:2010-10-20 01:49:01 【问题描述】:

是否有任何方法可以确定特定应用的位置服务是否已被禁用?问题是 [CLLocationManager locationServicesEnabled] 会返回 YES,即使已为特定应用禁用了位置服务...

【问题讨论】:

【参考方案1】:

如果您的目标是 ios 4.2 及更高版本,只需使用 [CLLocationManager authorizationStatus]

它将返回以下CLAuthorizationStatus 值之一,这些值基本上只是整数:

typedef enum 
   kCLAuthorizationStatusNotDetermined = 0,
   kCLAuthorizationStatusRestricted,
   kCLAuthorizationStatusDenied,
   kCLAuthorizationStatusAuthorized
 CLAuthorizationStatus;

在文档中搜索“CLLocationManager”以获取更多信息。

【讨论】:

【参考方案2】:

当您实现位置管理器的委托时,您应该实现 didFailWithError。如果用户不允许访问位置,您将在那里收到相应的错误

Apple Documentation States: 如果用户拒绝您的应用程序使用定位服务,此方法将报告kCLErrorDenied 错误。收到此类错误后,您应该停止定位服务。

【讨论】:

还有其他方法吗? ís 功能类似功能:locationServicesEnabled?。就你而言,你的方式也有点复杂。 @becktoan 就是这样,阅读我上面提供的文档链接

以上是关于为特定应用启用定位服务?的主要内容,如果未能解决你的问题,请参考以下文章

使用 Android WebViewClient 启用特定 SSL 协议

如何在 iOS 中为特定应用程序打开或关闭“位置服务检查”

如何在 ASP.Net Web API 中为特定控制器启用 Windows 身份验证

为 Spring Boot 驱动的 Vaadin 应用程序启用服务器推送不起作用

从 LocalSystem 服务运行非可视 GUI 应用程序

Google Kubernetes Engine:为服务类型启用 HTTPS