iOS - 如何摆脱“应用程序正在使用您的位置”通知

时间:2014-11-07 07:46:20

标签: ios objective-c google-maps

我在ios 8上使用Google Map SDK 1.8.1,
我设置Allow Location Access While Using The App

enter image description here

然后每当我使用GMSMapViewHome时,都会显示出来 (当导航堆栈中包含UIViewController的{​​{1}}时

如何以编程方式解雇? 谢谢。


编辑:对不起,我没有说清楚我的问题。

我的意思是当用户按下GMSMapView按钮时,如何阻止GMSMapView使用位置服务,我认为这样可以解决问题。

我尝试了Home的应用,当您Google Map时,通知视图确实消失了,所以我认为这是可能的。

2 个答案:

答案 0 :(得分:4)

当您使用用户的位置时,您无法阻止横幅展示,该位置是系统提供的用户信息,以便他们做出明智的决定他们与哪些应用分享他们的位置。

即使您找到了这样做的方法,如果能通过应用审核,我也会感到非常惊讶。关于它没有具体的规则,因为它无论如何都不是API的选项,但the guidelines的要点是用户应该知道你在他们的位置做了什么,当你跟踪它时:

  

4。位置

     

4.1:在收集,传输或使用位置数据之前未通知并获得用户同意的应用将被拒绝


编辑 - 响应主页按钮

要在用户按下主页按钮时停止使用位置,您需要订阅有关输入背景的通知。初始化使用位置的类时,请注册以下内容:

[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(appWillResignActive:) name:UIApplicationWillResignActiveNotification object:nil];

然后,在为该通知调用的方法中,停止使用location:

-(void)appWillResignActive:(NSNotification*)note
{
    //stop using location here. I'm not familar with GMSMapView, but assuming you have a reference to the map view, the documentation suggests this:
    self.mapView.myLocationEnabled = NO;
}

您可能还需要注册UIApplicationWillEnterForegroundNotification,这样当用户再次从应用切换器打开您的应用时,您可以再次选择位置服务。

答案 1 :(得分:3)

无法隐藏它。即使我停止了位置更新。

有一件事是肯定的:

您必须在NSLocationAlwaysUsageDescription

中使用info.plist

requestAlwaysAuthorization

请求LocationManager

以便

永远隐藏蓝色条(由于位置更新,仍具有背景功能)。

PS:我见过有人说过蓝线在一段时间后会消失,但这并没有发生在我身上。任何人都可以确认自动隐藏蓝条吗?