【问题标题】:Make the location authorization for an application message appear at the first launch of the application使应用程序消息的位置授权出现在应用程序首次启动时
【发布时间】:2011-11-16 09:28:35
【问题描述】:

我想显示一条消息,询问用户是否接受应用程序将使用其设备中的定位服务。我怎样才能实现它,而不保存他的位置?我试着做startLocationUpdates 然后stopLocationUpdates,但这不起作用。如果我删除了stopLocationUpdates,它可以工作,但位置指示器仍保留在状态栏中。

如果你问我为什么需要这个,我会在几个屏幕后使用核心定位方法。在使用它们之前,我会检查 + (CLAuthorizationStatus)authorizationStatus ,如果它与“授权”不同,我会发出警告消息。那是错的吗?

谢谢!

【问题讨论】:

    标签: iphone objective-c xcode core-location cllocationmanager


    【解决方案1】:

    我想你用同样的方法调用startLocationUpdates然后stopLocationUpdates

    如果是这种情况,请尝试以下操作:

    // Assuming that you have a property called locationManager
    // If you don't then you should at least have an initiated member 
    // in order to succeed with the second line below
    [self.locationManager startUpdatingLocation];
    [self.locationManager performSelector:@selector(stopUpdatingLocation) withObject:nil afterDelay:0.1];
    

    这样stopLocationUpdates 方法将在下一个运行循环中被调用。

    【讨论】:

    • 谢谢,这行得通!我只需要将延迟更改为 0.2,因为有时它有效,有时无效。
    • 嘿嘿,苹果会批准吗?引用苹果指南:“4.1 在收集、传输或使用位置数据之前未通知并获得用户同意的应用将被拒绝”
    • 应用程序会自动从操作系统提示用户获得使用位置的权限。你应该没事。
    • @BillBrasky,“位置授权”的警告仅在 ios 4.2 及更高版本上可用,不是吗?
    • 不,所有 4.0 及更高版本的设备都应该有授权。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-11-19
    • 1970-01-01
    相关资源
    最近更新 更多