Android 使用新的Google融合位置强制提供程序

Android 使用新的Google融合位置强制提供程序,android,gps,location,Android,Gps,Location,在我的应用程序中,用户选择一个按钮来检索他的位置。 如果他是第一次在这个商店使用应用程序,应用程序将使用用户位置来设置商店位置,因此它必须非常准确。 然后,当用户回到商店,他将能够知道商店和他自己的位置之间的距离 在这种情况下,我需要店铺位置与posible=>Disable Wifi Provider一样精确。 然后,当店铺位置被填满时,我可以使用wifi获取用户位置,这样我就节省了电池 现在,当启用wifi或3g时,获取位置非常快,但我与应该的位置相差250米。 我买不起这么大的差价来定位一

在我的应用程序中,用户选择一个按钮来检索他的位置。 如果他是第一次在这个商店使用应用程序,应用程序将使用用户位置来设置商店位置,因此它必须非常准确。 然后,当用户回到商店,他将能够知道商店和他自己的位置之间的距离

在这种情况下,我需要店铺位置与posible=>Disable Wifi Provider一样精确。 然后,当店铺位置被填满时,我可以使用wifi获取用户位置,这样我就节省了电池

现在,当启用wifi或3g时,获取位置非常快,但我与应该的位置相差250米。 我买不起这么大的差价来定位一家商店。因此,我需要强制用户使用GPS提供商,而不是wifi

我怎么做? 好了,我只能更改优先级:

LocationRequest.PRIORITY_HIGH_ACCURACY
LocationRequest.PRIORITY_BALANCED_POWER_ACCURACY
LocationRequest.PRIORITY_LOW_POWER
LocationRequest.PRIORITY_NO_POWER
我如何强制提供商使用GPS

以下是我的设置:

mLocationRequest = LocationRequest.create();

    /*
     * Set the update interval
     */
    mLocationRequest
            .setInterval(LocationUtils.UPDATE_INTERVAL_IN_MILLISECONDS);

    // Use high accuracy
    mLocationRequest.setPriority(LocationRequest.PRIORITY_HIGH_ACCURACY);

    // Set the interval ceiling to one minute
    mLocationRequest
            .setFastestInterval(LocationUtils.FAST_INTERVAL_CEILING_IN_MILLISECONDS);

    mLocationClient = new LocationClient(this, this, this);

我的问题解决了一半

我不能限制提供者,但我可以提高准确性

因此,在(精度>100)的同时,继续寻找坐标


你怎么看?

我也遇到了同样的问题。我正在更新精度,直到它低于20米,但不幸的是,位置是错误的。你有没有成功地改进这个?不太好。我发布了另一个问题,帮助我更好地理解地理定位是如何管理的:但我觉得缺少文档。。。