我在ios 8上使用Google Map SDK 1.8.1,
我设置Allow Location Access While Using The App
:
然后每当我使用GMSMapView
和Home
时,都会显示出来
(当导航堆栈中包含UIViewController
的{{1}}时
如何以编程方式解雇? 谢谢。
编辑:对不起,我没有说清楚我的问题。
我的意思是当用户按下GMSMapView
按钮时,如何阻止GMSMapView
使用位置服务,我认为这样可以解决问题。
我尝试了Home
的应用,当您Google Map
时,通知视图确实消失了,所以我认为这是可能的。
答案 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:我见过有人说过蓝线在一段时间后会消失,但这并没有发生在我身上。任何人都可以确认自动隐藏蓝条吗?