2013-12-11 43 views
0

我在代码下面开发,我们需要用户的确切位置。然而,我的客户说,它确切地获得位置,但有时他们错了。哪里不对? 谢谢Google Play服务框架位置有时并没有给出确切的位置

mLocationRequest = LocationRequest.create(); 
     mLocationRequest 
       .setInterval(LocationUtils.UPDATE_INTERVAL_IN_MILLISECONDS); 
     mLocationRequest 
       .setPriority(LocationRequest.PRIORITY_HIGH_ACCURACY); 

     // Set the interval ceiling to one minute 
     mLocationRequest 
       .setFastestInterval(LocationUtils.FAST_INTERVAL_CEILING_IN_MILLISECONDS); 
     mLocationRequest.setSmallestDisplacement(30); 
     // Note that location updates are off until the user turns them on 
     mUpdatesRequested = true; 
     mLocationClient = new LocationClient(this, this, this); 

回答

0

你的代码没有错。这就是融合提供者的工作原理。在我的观察它仍然是更好,因为它试图用GPS定位三角结合使用(而不是阅读纯GPS)。但是,您需要确保用户获得GPS,因为融合提供商不需要启用它。

+0

谢谢您的关心。但是文档说 “与优先级常数一起使用,例如PRIORITY_HIGH_ACCURACY,不接受任何其他值 请求的优先级对位置源使用的LocationClient有很强的暗示,例如,PRIORITY_HIGH_ACCURACY更可能使用GPS ..“ 因此,它会使用关于我的代码的GPS。 –

+0

他们这里的关键是词**优先**'。这意味着如果***启用了GPS,它将被用于其他来源。但是这个标志不强制用户启用GPS。所以,如果他得到了断,你会得到糟糕的traingulated的位置,这就是为什么你需要在你的应用GPS执行被启用,以便您优先会真的给你任何结果 –