标签: cllocationmanager

如何处理位置管理器的"不允许"?

我现在还没有想到这一点.

直到现在每当设备要求我使用位置更新时我都允许它.

但是现在我不允许它,位置管理器给我kclErrorDenied并且位置管理器在重新启动应用程序之前无法再次启动.

所以我的问题是,我应该给用户重新启动应用程序的消息,还是有解决方案再次开始使用位置管理器.

谢谢 .

The Error :
ERROR,Time,288787555.078,Function,"void CLClientHandleDaemonDataRegistration(__CLClient*, const CLDaemonCommToClientRegistration*, const __CFDictionary*)",server did not accept client registration 1
WARNING,Time,288787555.108,Function,"void CLClientHandleDaemonInvalidation(__CFMessagePort*, void*)",client 1308.0 has been disconnected from daemon
 locationManager:didFailWithError:] [Line 244] Error Denied :Error Domain=kCLErrorDomain Code=1 "Operation could not be completed. (kCLErrorDomain error 1.)"
Run Code Online (Sandbox Code Playgroud)

iphone cllocationmanager didfailwitherror

17
推荐指数
1
解决办法
1万
查看次数

如何提示用户再次打开位置服务....

我想拥有与地图应用程序相同的功能,每当用户按下"当前位置"按钮打开位置服务时,系统会提示用户:

  • 关闭位置服务
  • 用户按下'getCurrentLocation'按钮
  • 应用程序尝试使用CLLocationManager获取位置
  • 用户收到"打开位置服务..."消息,显示"设置"和"取消"按钮.
  • 用户点击"取消"
  • 用户再次按下''getCurrentLocation'按钮
  • 应用程序尝试再次使用CLLocationManager获取位置
  • 用户不再获得"打开位置服务..."消息

在地图应用中,用户每次都会收到"打开位置服务..."消息.我怎样才能让我的应用程序也这样做?我让用户我正在使用一个新的CLLocationManager实例,以防这是问题,但事实并非如此.我看不到会影响这个的任何设置.

如果我自己发出警报,我就无法获得相同的"设置"按钮功能.此外,我不希望用户看到多个看起来相同的警报.

有任何想法吗?

iphone cllocationmanager ios

17
推荐指数
3
解决办法
3万
查看次数

CLLocation再次请求许可

目前,我的应用程序仅询问一次是否允许使用当前位置.如果用户不允许,除非他在一般设置中重置位置警告,否则不会再次询问.我想让用户有机会在应用程序中稍后授予此权限.换句话说,如果按下某个按钮,对话框应该再次出现.这可能吗?

谢谢你的建议.

iphone permissions cllocationmanager iphone-sdk-4.1

16
推荐指数
2
解决办法
5131
查看次数

使用CLLocationManager计算准确的总步行/跑步距离时遇到问题

我正在尝试构建一个iOS应用程序,显示跑步或步行时的总行驶距离.我已经阅读并重新阅读了我能找到的所有文档,但是我无法想出能够给出准确总距离的东西.

与Nike + GPS或RunKeeper相比,我的应用程序始终报告较短的距离.他们一开始会报告相同的情况,但随着我不断前进,我的应用程序与其他正在运行的应用程序的价值逐渐变化.

例如,如果我走了0.3公里(通过我的汽车里程表验证),Nike + GPS和RunKeeper每次报告约.3公里,但我的应用程序将报告〜.13公里.newLocation.horizo​​ntalAccuracy始终为5.0或10.0.

这是我正在使用的代码.我错过了一些明显的东西吗 有关如何改进这一点以获得更准确读数的任何想法?

#define kDistanceCalculationInterval 10 // the interval (seconds) at which we calculate the user's distance
#define kNumLocationHistoriesToKeep 5 // the number of locations to store in history so that we can look back at them and determine which is most accurate
#define kValidLocationHistoryDeltaInterval 3 // the maximum valid age in seconds of a location stored in the location history
#define kMinLocationsNeededToUpdateDistance 3 // the number of locations needed in history before we …
Run Code Online (Sandbox Code Playgroud)

objective-c core-location cllocationmanager cllocation ios

16
推荐指数
1
解决办法
7327
查看次数

startMonitoringSignificantLocationChanges和startUpdatingLocation如何相互影响?

如果我startUpdatingLocationstartMonitoringSignificantLocationChanges跑步的时候打电话怎么办?significantLocationChange监控是否会停止?如果我然后stopUpdatingLocation将significantLocationChange监控继续或重启?

我找不到涵盖这两种监控位置方式之间相互作用的文档.

core-location cllocationmanager ios ios5

16
推荐指数
3
解决办法
3353
查看次数

iOS CLLocationManager在一个单独的类中

我有多个视图控制器需要获取用户的位置,所以我想创建一个单独的类,ViewControllers可以调用该类来获取用户的最新位置.

locationManager:didUpdateToLocation:fromLocation返回void.一旦计算出用户的纬度和经度,我如何将纬度和经度数据传回我的ViewControllers?

我可以尝试在我的locationManaging类中编写getter和setter,但是如果我这样做,我怎么知道何时从我的ViewController类中调用latitude getter和longitude getter方法?如何保持ViewController的主线程等待来自locationManaging类的纬度和经度值?

谢谢!

xcode core-location cllocationmanager ios

16
推荐指数
3
解决办法
2万
查看次数

UIBackgroundModes位置和重要的位置变化与区域监测

我有一个应用程序,它结合使用startMonitoringForRegion:startMonitoringSignificantLocationChanges在应用程序处于后台时了解用户的位置.这是否意味着我需要locationUIBackgroundModes键中包含键的值Info.plist

这是文档的引用:

对于不需要高精度位置数据的应用,强烈建议使用重要更改位置服务.使用此服务,仅当用户的位置发生显着变化时才会生成位置更新; 因此,它非常适合为用户提供非关键的,与位置相关的信息的社交应用或应用.如果在更新发生时暂停应用程序,系统会在后台将其唤醒以处理更新.如果应用程序启动此服务然后终止,系统会在新位置可用时自动重新启动应用程序.此服务在iOS 4及更高版本中可用,并且仅在包含蜂窝无线电的设备上可用.

...

为用户提供连续位置更新的应用程序(即使在后台)可以通过在其Info.plist文件中包含UIBackgroundModes键(具有位置值)来启用后台位置服务.在UIBackgroundModes键中包含此值并不妨碍系统暂停应用程序,但它确实告诉系统,只要有新的位置数据要传递,它就应该唤醒应用程序.因此,此密钥有效地允许应用程序在后台运行,以便在发生时处理位置更新.

我对此的解释是,只有当应用程序需要连续的位置更新时才需要密钥的locationUIBackgroundModes,例如sat导航应用程序.

我还尝试在没有密钥location值的设备上运行应用程序,UIBackgroundModes并继续报告重要的位置更改以及何时输入退出的区域.

此外,CLLocationManager类参考中UIBackgroundModes提到的唯一位置是在讨论中,我没有使用.startUpdatingLocation

iphone objective-c core-location cllocationmanager ios

16
推荐指数
1
解决办法
1万
查看次数

在iOS中获取纬度和经度的位置名称

我想从纬度和经度中找到当前位置名称,

这里是我的代码片段我试过,但我的日志显示,除了在所有的地方空值placemark,placemark.ISOcountryCodeplacemark.country

我想要的价值placemark.locality,并placemark.subLocality却是露出空值.

- (void)viewWillAppear:(BOOL)animated
{
     [super viewWillAppear:animated];

    // this creates the CCLocationManager that will find your current location
    locationManager = [[CLLocationManager alloc] init];
    locationManager.delegate = self;
    locationManager.desiredAccuracy = kCLLocationAccuracyNearestTenMeters;
    [locationManager startUpdatingLocation];

}

// this delegate is called when the app successfully finds your current location
- (void)locationManager:(CLLocationManager *)manager didUpdateToLocation:(CLLocation *)newLocation fromLocation:(CLLocation *)oldLocation
{
    CLGeocoder *geocoder = [[CLGeocoder alloc] init];
    [geocoder reverseGeocodeLocation:locationManager.location
                   completionHandler:^(NSArray *placemarks, NSError *error) {
                       NSLog(@"reverseGeocodeLocation:completionHandler: Completion Handler called!"); …
Run Code Online (Sandbox Code Playgroud)

iphone reverse-geocoding cllocationmanager ipad ios

16
推荐指数
3
解决办法
4万
查看次数

CLLocationManager授权问题iOS 8

我正在为iOS 8开发一段Swift代码.我正在尝试做一些涉及位置的事情,所以我在我的swift视图控制器文件中实现了以下内容:

let locationManger:CLLocationManager = CLLocationManager()

var speedReceived:Double = 0

override func viewDidLoad() {
    super.viewDidLoad()
    locationManger.delegate = self
    locationManger.desiredAccuracy = kCLLocationAccuracyBest
    let authstate = CLLocationManager.authorizationStatus()
    if(authstate == CLAuthorizationStatus.NotDetermined){
       println("Not Authorised")  
      locationManger.requestWhenInUseAuthorization()
    }
    // Do any additional setup after loading the view, typically from a nib.
}

func locationManager(manager: CLLocationManager!, didUpdateLocations locations: [AnyObject]!){
    var location:CLLocation = locations[locations.count - 1] as CLLocation
    if(location.horizontalAccuracy > 0){
        self.speedReceived = location.speed
        println(self.speedReceived)
    }
}

func locationManager(manager: CLLocationManager!, didFailWithError error: NSError!) {
   println("Couldn't get your location") …
Run Code Online (Sandbox Code Playgroud)

core-location cllocationmanager ios swift

16
推荐指数
2
解决办法
3万
查看次数

在面向用户的方向上旋转GMSMarker

我要求在我当前的位置显示一个视图.如果设备旋转或位置将改变它将旋转.我研究很多,但得到所有代码,在某些位置有固定位置或角度但我没有固定位置.任何人都可以朝正确的方向开车.

我还使用了GMSMarker的旋转属性,但它不起作用.

- (void)locationManager:(CLLocationManager *)manager didUpdateHeading:(CLHeading *)newHeading
{
    if (newHeading.headingAccuracy < 0){
        NSLog(@"heading accuracy < 0");
        return;
    }

    // Convert Degree to Radian and move the needle
    float oldRad =  (- manager.heading.trueHeading) * M_PI / 180.0f;
    float newRad =  (- newHeading.trueHeading) * M_PI / 180.0f;

    // Compass animation
    CABasicAnimation *theAnimation;
    theAnimation = [CABasicAnimation animationWithKeyPath:@"transform.rotation"];
    theAnimation.fromValue = [NSNumber numberWithFloat:oldRad];
    theAnimation.toValue   = [NSNumber numberWithFloat:newRad];
    theAnimation.duration  = 0.5f;
    [source.layer addAnimation:theAnimation forKey:@"animateMyRotation"];

//    source.transform =  CGAffineTransformMakeRotation(newRad)
//    GMSMarker *source = [googleMap selectedMarker]; …
Run Code Online (Sandbox Code Playgroud)

objective-c google-maps-markers cllocationmanager ios gmsmapview

16
推荐指数
3
解决办法
1万
查看次数