Подтвердить что ты не робот

Службы Google Play: как обращаться с устройствами, не имеющими Google Play?

Сервисы Google Play - это библиотека Android, целью которой является:

  • Проверка подлинности OAuth 2.0
  • Google+ вход
  • Кнопка Google+ +1
  • различные другие вкусности

Если бы я использовал его (например, потому что я хочу войти в систему Google+), что бы случилось с пользователями, на устройстве которых нет Google Play? (Nook, Cyanogenmod, China Mobile, старые устройства, может быть, Huawei? И т.д.)

ВОПРОС: Будет ли мое приложение несовместимым с такими устройствами? Будет ли он отображаться как совместимый, но затем аварийно завершится или не будет работать?
Есть ли лучший способ помнить об этом при использовании сервисов Google Play?

4b9b3361

Ответ 1

GooglePlayServicesUtil.isGooglePlayServicesAvailable(android.content.Context)

устарел!

Использование:

 GoogleApiAvailability api = GoogleApiAvailability.getInstance();
        int code = api.isGooglePlayServicesAvailable(activity);
        if (code == ConnectionResult.SUCCESS) {
           // Do Your Stuff Here
        } else {
           AlertDialog alertDialog =
                 new AlertDialog.Builder(activity, R.style.AppCompatAlertDialogStyle).setMessage(
                       "You need to download Google Play Services in order to use this part of the application")
                       .create();
           alertDialog.show();
        }

Ответ 2

Если функция Google Play Services важна для вашего приложения, не будет никакого способа заставить ваше приложение работать.

Вы можете проверить, включены ли сервисы из вашего приложения с помощью GooglePlayServicesUtil.isGooglePlayServicesAvailable(android.content.Context)
который возвращает ConnectionResult.SUCCESS, если доступны Службы воспроизведения.

Теперь вы можете попытаться убедить пользователя установить его (если возможно) или отключить функцию, использующую службу.

Поскольку службы Google Play не являются функцией, объявленной в манифесте, ваше приложение должно установить штраф на любом устройстве, но позже может произойти сбой, если вы используете API-интерфейсы, не проверяя, доступны ли они.

Вы можете попробовать поведение с эмулятором. Просто создайте AVD без API Google и поместите в него свое приложение.

Ответ 3

Если вам как-то нужно использовать Play Services, или если вы поддерживаете устаревшее приложение, которое выполняет вызовы в Play Services, я бы порекомендовал следующую стратегию:

  1. При запуске приложения проверьте, доступны ли сервисы Play.
  2. Если недоступно, перенаправьте вызовы Play Services на microG

microG - это реализация Google Play Services с открытым исходным кодом.
В нем отсутствуют многие функции, но он находится в стадии активной разработки. Многие функции по-прежнему заглушки.

Для служб определения местоположения есть также LOST, замена для API определения местоположения служб Google Play.

Ваше приложение может не работать идеально, но по крайней мере это лучше, чем сбой.

Конечно, лучше всего НЕ использовать Сервисы Google Play с самого начала.