Когда isGooglePlayServicesAvailable возвращает SERVICE_VERSION_UPDATE_REQUIRED?

Согласно документации GooglePlayServicesUtil.isGooglePlayServicesAvailable возвращает SERVICE_VERSION_UPDATE_REQUIRED, когда «Установленная версия услуг Google Play устарела».

Означает ли это, что в игровом магазине есть новая версия сервисов Google Play?
Означает ли это, что для приложения требуется более новая версия, чем версия, установленная на этом устройстве?

Как проходит эта проверка?

Это означает, что версия игрового сервиса google, включенная в ваше приложение, выше, чем версия, установленная на устройстве пользователя. Пользователь должен обновить свои сервисы Google Play, чтобы ваше приложение работало правильно.

Если результат вернется с этой ошибкой, вы можете просто вызвать этот метод, чтобы предупредить пользователя, которого они должны обновить, и он будет их принимать.

GooglePlayServicesUtil.getErrorDialog(result, this, GOOGLE_PLAY_SERVICE_UPDATE_CODE).show(); 

result является метод isGooglePlayServicesAvailable

Ниже приведены документы для GooglePlayServicesUtil : http://developer.android.com/reference/com/google/android/gms/common/GooglePlayServicesUtil.html .

Вот где они говорят об «обеспечении» пользователя, который он установил: https://developer.android.com/google/play-services/setup.html#ensure

Это взято из исходного исходного кода Iosched 2014: https://github.com/google/iosched/blob/0a90bf8e6b90e9226f8c15b34eb7b1e4bf6d632e/android/src/main/java/com/google/samples/apps/iosched/util/PlayServicesUtils. Ява

 public class PlayServicesUtils { public static boolean checkGooglePlaySevices(final Activity activity) { final int googlePlayServicesCheck = GooglePlayServicesUtil.isGooglePlayServicesAvailable(activity); switch (googlePlayServicesCheck) { case ConnectionResult.SUCCESS: return true; case ConnectionResult.SERVICE_DISABLED: case ConnectionResult.SERVICE_INVALID: case ConnectionResult.SERVICE_MISSING: case ConnectionResult.SERVICE_VERSION_UPDATE_REQUIRED: Dialog dialog = GooglePlayServicesUtil.getErrorDialog(googlePlayServicesCheck, activity, 0); dialog.setOnCancelListener(new DialogInterface.OnCancelListener() { @Override public void onCancel(DialogInterface dialogInterface) { activity.finish(); } }); dialog.show(); } return false; } } 

Вот как использовать его в Activity : https://github.com/google/iosched/blob/cf1f30b4c752f275518384a9b71404ee501fc473/android/src/main/java/com/google/samples/apps/iosched/ui/BaseActivity.java

 @Override protected void onResume() { super.onResume(); // Verifies the proper version of Google Play Services exists on the device. PlayServicesUtils.checkGooglePlaySevices(this); } 

Означает ли это, что в игровом магазине есть новая версия сервисов Google Play?

С сайта последнее обновление было в декабре 2014 года

Означает ли это, что для приложения требуется более новая версия, чем версия, установленная на этом устройстве?

Вы можете проверить, имеет ли устройство более высокую версию Службы Google Play Service чем в вашем приложении:

  int status = GooglePlayServicesUtil.isGooglePlayServicesAvailable( getApplicationContext() ); if(status == ConnectionResult.SUCCESS) { //OK }else if(status == ConnectionResult.SERVICE_VERSION_UPDATE_REQUIRED){ Toast.makeText(context,"please udpate your google play service",Toast.LENGTH_SHORT).show } 

Обратите внимание, что все текущие ответы ссылаются на GooglePlayServicesUtil, который теперь устарел. Подробнее о том, как выполнить проверку совместимости версий Google Play Services, см. В GooglePlayServicesUtil и GoogleApiAvailability .

Документация обновлена, теперь ясно:

Проверяет, что службы Google Play установлены и включены на этом устройстве, и что версия, установленная на этом устройстве, не старше той, которая требуется для этого клиента .