我可以通过代码以编程方式打开位置服务吗

Posted

技术标签:

【中文标题】我可以通过代码以编程方式打开位置服务吗【英文标题】:Can i turn on location service by the code programmatically 【发布时间】:2016-02-09 12:14:43 【问题描述】:

我是 tvOS 平台的新手。我想知道如何在应用程序启动时获取当前位置的纬度和经度。我正在编写这段代码来获取位置坐标。

func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool 

    dispatch_async(dispatch_get_main_queue())  () -> Void in
            self.locationManager.desiredAccuracy = kCLLocationAccuracyBest
            self.locationManager.delegate = self
            self.locationManager.requestLocation()
            self.locationManager.requestWhenInUseAuthorization()
        
        return true
    

func locationManager(manager: CLLocationManager, didUpdateLocations locations: [CLLocation]) 

        locationValue = manager.location?.coordinate
        print("=========didUpdateLocations==========Latitude>>>>>",locationValue.latitude)
        print("=========didUpdateLocations==========Longitude>>>>",locationValue.longitude)
    
func locationManager(manager: CLLocationManager, didFailWithError error: NSError) 

        print("localizedDescription===================",error.localizedDescription)
    

此代码提供视图控制器加载后的坐标。虽然我的要求是我想在加载视图控制器之前获得坐标。我可以为单个应用程序以编程方式启用位置服务吗?

【问题讨论】:

【参考方案1】:

定位服务按需确定位置,这需要时间。因此,它只提供了一个异步接口。

所以现在您可以在视图控制器显示之前检索位置。您需要编写您的应用程序,以便它可以在不知道位置的情况下显示视图控制器,然后在位置信息可用时更新屏幕。

【讨论】:

【参考方案2】:

需要设置应用信息和授权,见讨论Here

我还找到了这个相同问题的解决方案和解释Here

【讨论】:

@弗兰克我已经完成了。但不是快速获得位置。委托方法正在延迟响应位置。在应用程序启动时。我想在应用启动前获得坐标 好的,明白了。。我稍后再看看。 您可以通过此电子邮件 id 发送演示应用程序:sankalap@fusionitechnologies.com 不打算做演示应用程序,我想看看我是否能找到解决方案。

以上是关于我可以通过代码以编程方式打开位置服务吗的主要内容,如果未能解决你的问题,请参考以下文章

以编程方式在iOS中启用位置服务

可以以编程方式更新 Google Play 服务吗?

在 Android 中以编程方式打开位置提供程序

应用程序打开时如何以编程方式恢复位置访问

SwiftUI:以编程方式关闭警报

iOS 7 以编程方式每个应用程序 ***