启用"高精度"使用Google Play服务中的设置API的位置

时间:2016-08-11 15:09:29

标签: android google-maps gps google-location-services

我尝试使用Settings API从应用程序启用该位置。在位置对话框中,它会显示消息 Use WiFi and cellular networks for location 。在选择Yes时,它会启用位置,但不启用GPS

This is what I get

但是当我在同一设备中使用Google Maps时,它会显示消息 Use GPS, WiFi and cellular networks for location ,如下图所示。

这也是GPS的启用。我怎样才能达到与Google Maps相同的效果。

在发布之前,我希望我已经检查了所有可能的选项。在下面找到我的试用列表。

我已将priority设为HIGH_ACCURACY,将最小间隔设为5秒

locationRequest = LocationRequest.create();

// Set the priority of the request
locationRequest.setPriority(LocationRequest.PRIORITY_HIGH_ACCURACY);

// Set the update interval to 10 seconds
locationRequest.setInterval(1000 * 10);

// Set the fastest update interval to 5 seconds
locationRequest.setFastestInterval(1000 * 5);

仅使用FINE_LOCATION权限

<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />

也提到了一些links,但没有给出确切的解决方案。我只需要默认情况下启用HIGH_ACCURACY的位置,这样可以GPS对此有任何帮助吗?

1 个答案:

答案 0 :(得分:1)

我遇到了这个问题,但是在点击“是”按钮以允许使用GPS后,活动停止并运行方法onPause,然后活动开始于方法onResume。 所以我的解决方案是再次启动onResume方法中的localizacion

@Override onResume public void () {

         //your code
         LocationRequest = LocationRequest.create ();

         // Set the priority of the request
         locationRequest.setPriority(LocationRequest.PRIORITY_HIGH_ACCURACY);

         // Set the update interval to 10 seconds
         locationRequest.setInterval (1000 * 10);

         // Set the fastest update interval to 5 seconds
         locationRequest.setFastestInterval (1000 * 5);
         .....
         //start again the localizacion 
         LocationServices.FusedLocationApi.requestLocationUpdates(apiClient, locRequest, this);