checkLocationSettings на пиксельных телефонах возвращает RESOLUTION_REQUIRED - PullRequest
1 голос
/ 16 мая 2019

У меня три телефона Pixel, и все они отображают это поведение при проверке разрешений местоположения во фрагменте.

result.isSuccessful () из метода checkLocationSettings всегда возвращает false, когда wifi отключен.Я действительно не понимаю, как будто Pixel не знает, как обрабатывать запросы местоположения без Wi-Fi.

Обратите внимание, что если вы включите сканирование сетей Wi-Fi, он снова начнет работать как обычно.

Это процесс, который выполняет мое приложение:

1) Активность запрашивает разрешения местоположения, и они предоставляются.(Это все работает нормально).

2) Фрагмент, запускаемый позже, проверяет предоставленное разрешение на местоположение и запрашивает обновления местоположения.

Код фрагмента:

locationRequest = LocationRequest.create();
locationRequest.setPriority(LocationRequest.PRIORITY_HIGH_ACCURACY);
locationRequest.setInterval(UPDATE_INTERVAL);
locationRequest.setFastestInterval(FASTEST_INTERVAL);

LocationSettingsRequest.Builder builder = new 
LocationSettingsRequest.Builder().addLocationRequest(locationRequest);
SettingsClient client = LocationServices.getSettingsClient(activity);
Task<LocationSettingsResponse> task = client.checkLocationSettings(builder.build());

task.addOnCompleteListener(result -> {
       if (result.isSuccessful()) {
           fusedLocationClient.requestLocationUpdates(
           ...
       }else{
           //Always end up here
           //com.google.android.gms.common.api.ResolvableApiException: 6: RESOLUTION_REQUIRED
           Exception locExcep = result.getException();
           Log.e(TAG, "startLocationUpdates failed: ", locExcep);
       }

Работает на любом другомтелефон я могу достать.Весь код практически идентичен:

https://developer.android.com/training/location/change-location-settings.html

https://developer.android.com/training/location/receive-location-updates

Ошибка:

com.google.android.gms.common.api.ResolvableApiException: 6: RESOLUTION_REQUIRED
        at com.google.android.gms.common.internal.ApiExceptionUtil.fromStatus(Unknown Source:3)
        at com.google.android.gms.common.internal.zai.zaf(Unknown Source:2)
        at com.google.android.gms.common.internal.zaj.onComplete(Unknown Source:6)
        at com.google.android.gms.common.api.internal.BasePendingResult.zaa(Unknown Source:172)
        at com.google.android.gms.common.api.internal.BasePendingResult.setResult(Unknown Source:131)
        at com.google.android.gms.common.api.internal.BaseImplementation$ApiMethodImpl.setResult(Unknown Source:36)
        at com.google.android.gms.internal.location.zzbc.zza(Unknown Source:2)
        at com.google.android.gms.internal.location.zzar.dispatchTransaction(Unknown Source:11)
        at com.google.android.gms.internal.location.zzb.onTransact(Unknown Source:22)
        at android.os.Binder.execTransact(Binder.java:731)

1 Ответ

0 голосов
/ 23 мая 2019

Какую версию Android Gradle Plugin вы используете? Попробуйте использовать com.android.tools.build:gradle:3.3.0-alpha11.

Если это не решит вашу проблему, вы можете предоставить следующую информацию:

  • Это происходит в 100% случаев на устройствах Pixel?
  • Пожалуйста, предоставьте список тех пиксельных устройств и информацию о сборке Android, где наблюдается эта проблема
  • Пример приложения и шаги по воспроизведению этой проблемы.
...