2015-04-20 2 views
0

Я пытаюсь использовать новый SettingsApi (https://developer.android.com/reference/com/google/android/gms/location/SettingsApi.html) из GooglePlayServices, чтобы обнаружить необходимость изменений в настройках пользователей, не выходя из приложения.Как я могу запросить местоположение «Высокая точность» с новым параметром SettingsApi в GooglePlayServices?

Моя проблема заключается в том, что диалог появляется, но он говорит только, что для доступа к местоположению потребуется Wi-Fi и Интернет. Я также хочу, чтобы он запрашивал GPS (это режим High Accuracy или режим только устройства).

Мой код для получения LocationSettingsRequest:

public static LocationSettingsRequest getHighPriorityLocationSettingsRequest() { 
     LocationRequest locationRequest = LocationRequest.create(); 
     locationRequest.setFastestInterval(FASTEST_INTERVAL); 
     locationRequest.setInterval(UPDATE_INTERVAL_ACTIVE); 
     locationRequest.setPriority(LocationRequest.PRIORITY_HIGH_ACCURACY); 

     return new LocationSettingsRequest.Builder() 
       .addLocationRequest(locationRequest) 
       .setAlwaysShow(true) 
       .build(); 
    } 

Спасибо!

+0

Каковы значения 'FASTEST_INTERVAL' и' UPDATE_INTERVAL_ACTIVE'? –

+0

У вас уже есть GPS для этого устройства или он также отключен? – ianhanniballake

+0

Вы запрашиваете разрешение ACCESS_FINE_LOCATION в манифесте? – cygery

ответ

0

В диалоговом окне перечислены только изменения, необходимые для установки ваших настроек местоположения в более оптимизированные состояния. Таким образом, он не будет спрашивать GPS, когда:

  • GPS не доступна на вашем устройстве, или
  • GPS уже включена.

Кстати, ни FASTEST_INTERVAL, ни UPDATE_INTERVAL_ACTIVE не имеет никакого отношения к этому диалогу.

Смежные вопросы