Как обновить Сервисы Google Play до версии 9.8.7 для работы в Google Pixel

Я пытаюсь реализовать свое приложение, следуя инструкциям с https://developers.google.com/android/guides/setup, установив Службы Google Play на 9.8.0 в моем файле build.gradle. Как описано в разделе Как обновить Службы Google Play до версии 9.8. 7, для тестирования на эмуляторе я должен понизить версию службы. Однако это также указывает, что он должен работать на физическом устройстве.

  • Я использую новый телефон Google Pixel с установленными сервисами Google Play 9.3.84, Android 7.1.
  • Файл build.gradle включает в себя: compile 'com.google.android.gms:play-services:9.8.0'
  • После запуска отладчика adb отображается

I/FirebaseInitProvider: инициализация FirebaseApp не удалась

W/GooglePlayServicesUtil: сервисы Google Play устарели. Требует 9877000, но нашел 9384448

E/MainActivity: не удалось подключиться к клиенту API Google.

Я обновил Службы Google Play в SDK Manager/Tools (версия 37), но у меня заканчиваются идеи. Я не знаю, как понизить версию сервисов Google Play на Pixel. Я что-то упустил (возможно, очевидное?)

EDTI: см. ответ, мне не хватало правильной версии сервисов Google Play на телефоне. Решение реализует проверку для предотвращения ошибок в будущем.


person davidverweij    schedule 26.10.2016    source источник


Ответы (1)


Вы должны добавить некоторый код, чтобы проверить, требуется ли обновление. Как это ниже.

GoogleApiAvailability googleApiAvailability = GoogleApiAvailability.getInstance();
    googlePlayServicesAvailable = googleApiAvailability.isGooglePlayServicesAvailable((Variables.context));
        if ((googlePlayServicesAvailable == ConnectionResult.SERVICE_MISSING) || (googlePlayServicesAvailable == ConnectionResult.SERVICE_VERSION_UPDATE_REQUIRED) || (googlePlayServicesAvailable == ConnectionResult.SERVICE_DISABLED)) {
                            activity.this.startActivity(new Intent(Intent.ACTION_VIEW, Uri.parse("market://details?id=" + context.getPackageName())));
                            googleApiAvailability.getErrorDialog(((Activity) Variables.context), googlePlayServicesAvailable, 0);
        }

Вы должны изменить мой код на:

  1. Спросите пользователя, хотят ли они обновить
  2. Поймать, если плеймаркет не установлен с ActivityNotFoundException
person apmartin1991    schedule 26.10.2016
comment
вы совершенно правы. Оказывается, как указано в моем вопросе, у меня была установлена ​​более старая версия Служб Google Play (9.3.84 вместо 9.8.77). Быстрое исправление заключалось в том, чтобы найти приложение в Chrome (на телефоне) и запросить обновление. В настоящее время я реализую ваше решение, так как оно решает проблему независимо от версии телефона Android/сервисов Google Play. Спасибо! - person davidverweij; 26.10.2016