Android GooglePlayServicesUtil.getErrorDialog() не отображает диалоговое окно ⇐ Android
-
Anonymous
Android GooglePlayServicesUtil.getErrorDialog() не отображает диалоговое окно
Я пытаюсь проверить доступность APK сервисов Google Play перед его использованием. у меня есть устройство, на котором пакет устарел (в журнале указано: «...Сервисы Google Play устарели. Требуется 3225100, но найдено 3136134»).
Приведенный ниже код должен обрабатывать эту ситуацию и отображать диалоговое окно, предлагающее пользователю выполнить обновление. По неизвестной мне причине линия
GooglePlayServicesUtil.getErrorDialog(resultCode, this, PLAY_SERVICES_RESOLUTION_REQUEST).show(); немедленно возвращает результат, не отображая никакого диалога (и не блокируя поток пользовательского интерфейса при событии пользовательского интерфейса).
Не могли бы вы пролить свет на то, что возможно происходит и как исправить код чтобы отобразить диалог?
@Override защищенный недействительный onResume() { супер.онрезюме(); // Проверка устройства на наличие APK сервисов Play. Если проверка прошла успешно, продолжайте // Регистрация GCM. если (checkPlayServices()) { gcm = GoogleCloudMessaging.getInstance(this); regid = getRegistrationId(контекст); if (regid == null || regid.length() == 0) { зарегистрироватьВфоне(); } еще { this.user.setGCMRegistrationId(regid); } } еще { Log.i(TAG, «Не найден действительный APK-файл Сервисов Google Play.»); } } /** * Проверьте устройство и убедитесь, что на нем установлен APK-файл служб Google Play. Если * нет, отображается диалоговое окно, позволяющее пользователям загрузить APK с * Google Play Store или включите его в системных настройках устройства. */ частная логическая проверкаPlayServices() { int resultCode = GooglePlayServicesUtil.isGooglePlayServicesAvailable(this); если (resultCode!= ConnectionResult.SUCCESS) { если (GooglePlayServicesUtil.isUserRecoverableError(resultCode)) { GooglePlayServicesUtil.getErrorDialog(resultCode, this, PLAY_SERVICES_RESOLUTION_REQUEST).show(); } еще { Log.i(TAG, «Это устройство не поддерживается.»); заканчивать(); } вернуть ложь; } вернуть истину; } @Override protected void onActivityResult (int requestCode, int resultCode, данные намерения) { переключатель (код запроса) { случай PLAY_SERVICES_RESOLUTION_REQUEST: если (resultCode == RESULT_CANCELED) { Toast.makeText(это «Необходимо установить Сервисы Google Play.», Toast.LENGTH_SHORT).show(); заканчивать(); } возвращаться; } super.onActivityResult(requestCode, resultCode, data); }
Я пытаюсь проверить доступность APK сервисов Google Play перед его использованием. у меня есть устройство, на котором пакет устарел (в журнале указано: «...Сервисы Google Play устарели. Требуется 3225100, но найдено 3136134»).
Приведенный ниже код должен обрабатывать эту ситуацию и отображать диалоговое окно, предлагающее пользователю выполнить обновление. По неизвестной мне причине линия
GooglePlayServicesUtil.getErrorDialog(resultCode, this, PLAY_SERVICES_RESOLUTION_REQUEST).show(); немедленно возвращает результат, не отображая никакого диалога (и не блокируя поток пользовательского интерфейса при событии пользовательского интерфейса).
Не могли бы вы пролить свет на то, что возможно происходит и как исправить код чтобы отобразить диалог?
@Override защищенный недействительный onResume() { супер.онрезюме(); // Проверка устройства на наличие APK сервисов Play. Если проверка прошла успешно, продолжайте // Регистрация GCM. если (checkPlayServices()) { gcm = GoogleCloudMessaging.getInstance(this); regid = getRegistrationId(контекст); if (regid == null || regid.length() == 0) { зарегистрироватьВфоне(); } еще { this.user.setGCMRegistrationId(regid); } } еще { Log.i(TAG, «Не найден действительный APK-файл Сервисов Google Play.»); } } /** * Проверьте устройство и убедитесь, что на нем установлен APK-файл служб Google Play. Если * нет, отображается диалоговое окно, позволяющее пользователям загрузить APK с * Google Play Store или включите его в системных настройках устройства. */ частная логическая проверкаPlayServices() { int resultCode = GooglePlayServicesUtil.isGooglePlayServicesAvailable(this); если (resultCode!= ConnectionResult.SUCCESS) { если (GooglePlayServicesUtil.isUserRecoverableError(resultCode)) { GooglePlayServicesUtil.getErrorDialog(resultCode, this, PLAY_SERVICES_RESOLUTION_REQUEST).show(); } еще { Log.i(TAG, «Это устройство не поддерживается.»); заканчивать(); } вернуть ложь; } вернуть истину; } @Override protected void onActivityResult (int requestCode, int resultCode, данные намерения) { переключатель (код запроса) { случай PLAY_SERVICES_RESOLUTION_REQUEST: если (resultCode == RESULT_CANCELED) { Toast.makeText(это «Необходимо установить Сервисы Google Play.», Toast.LENGTH_SHORT).show(); заканчивать(); } возвращаться; } super.onActivityResult(requestCode, resultCode, data); }
Мобильная версия