Ошибка Android Wear ConnectionResult{statusCode=SERVICE_VERSION_UPDATE_REQUIRED, resolution=null}

Я хотел создать простое в использовании приложение и подключаться к нему через слой данных. Все отлично работает с ручным модулем (используя: S5), но носимый (используя: Moto 360) всегда выдает ошибку:

onConnectionFailed: ConnectionResult {statusCode = SERVICE_VERSION_UPDATE_REQUIRED, resolution = null}

Услуги игры на портативном устройстве являются современными

я добавил

compile 'com.google.android.gms:play-services:7.3.0'

на оба, наладонник, как на износ.

Носимая активность:

@Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        final WatchViewStub stub = (WatchViewStub) findViewById(R.id.watch_view_stub);
        stub.setOnLayoutInflatedListener(new WatchViewStub.OnLayoutInflatedListener() {
            @Override
            public void onLayoutInflated(WatchViewStub stub) {
                mTextView = (TextView) stub.findViewById(R.id.text);
            }
        });
        int result = GooglePlayServicesUtil.isGooglePlayServicesAvailable(this);
        Log.i(TAG,"Services available: "+ result);
        mGoogleApiClient = new GoogleApiClient.Builder(this)
                .addConnectionCallbacks(new GoogleApiClient.ConnectionCallbacks() {
                    @Override
                    public void onConnected(Bundle connectionHint) {
                        Log.d(TAG, "onConnected: " + connectionHint);
                        // Now you can use the Data Layer API
                    }
                    @Override
                    public void onConnectionSuspended(int cause) {
                        Log.d(TAG, "onConnectionSuspended: " + cause);
                    }
                })
                .addOnConnectionFailedListener(new GoogleApiClient.OnConnectionFailedListener() {
                    @Override
                    public void onConnectionFailed(ConnectionResult result) {
                        Log.d(TAG, "onConnectionFailed: " + result);
                    }
                })
                        // Request access only to the Wearable API
                .addApi(Wearable.API)
                .build();

    }

    @Override
    protected void onStart() {
        super.onStart();
        Log.i(TAG, "==OnStart===");
        mGoogleApiClient.connect();
    }

Я провел исследование, но не смог найти никакого рабочего решения.

6 ответов

Решение

У меня похожая проблема, когда я использую Сервисы Google Play на ASUS ZenWatch,

В носимых всегда выкидывают ошибку:

ConnectionResult {statusCode = SERVICE_VERSION_UPDATE_REQUIRED, разрешение = ноль

Сервисы Google Play устарели. Требуется 7327000, но найдено 6774534

Я обнаружил, что носимые и портативные службы Google Play могут не синхронизироваться, я не знаю почему.

Итак, проверьте носимую версию Сервисов Google Play

Настройки -> О программе -> Версия программного обеспечения

И повторно синхронизировать приложения

Запустите приложение And roid Wear -> щелкните значок шестеренки -> выберите устройство -> Resync apps

Подождите 3-5 минут, проверьте носимую версию Сервисов Google Play.

Когда синхронизация завершится, возможно, вы сможете это сделать.

Надеюсь, вы понимаете мой ломаный английский.

Если выбранный ответ не работает для некоторых людей, попробуйте это. Чтобы получить последние сервисы Google Play для износа, необходимо установить последнюю версию образа системы (API 22 на этот пост) для эмулятора. Я использовал API 21 ранее.

Я решил ту же проблему, опустив версии библиотек в скрипты Gradle.

Зависимости проекта телефона изначально были

compile 'com.google.android.gms:play-services:9.2.0'

Зависимости проекта часов

compile 'com.google.android.support:wearable:2.0.0-alpha1'
compile 'com.google.android.gms:play-services-wearable:9.2.0'

Телефон перестал требовать что-то обновить после того, как я понизил версию с 9.2.0 до 9.0.0 в обоих случаях.

У меня была такая же проблема.

Мне удалось это исправить, обновив службы Android Play до одной и той же версии на устройствах Android Mobile и Android Wear.

Вы можете проверить версию сервисов Android Play на своем мобильном устройстве, перейдя

 Settings -> Apps -> Google Play services -- The version should be listed near the top.

Затем перейдите на устройство Android Wear и проверьте версию сервисов Android Play. Это можно сделать, перейдя

Settings -> About -> Click on Versions -- The version should be listed

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

Сначала перейдите на страницу http://www.apkmirror.com/apk/google-inc/google-play-services/ чтобы загрузить службы Android Play APK. Убедитесь, что установлена ​​та же версия, что и на другом устройстве. Эта ссылка содержит загрузки, а также хорошая информация о поиске правильного APK для вашего устройства.

С помощью этой команды вы можете установить APK на ваше мобильное устройство Android. Параметр -r (переустановить) необходим, если на вашем устройстве установлена ​​текущая версия служб Google Play.

adb install -r <path to APK>

Вы также можете установить APK прямо на устройство Android Wear с помощью Bluetooth, если это устройство необходимо обновить. Это требует немного больше работы.

Во-первых, убедитесь, что ваше устройство Wear и мобильные устройства сопряжены. Перейдите в приложение "Android Wear" на вашем мобильном устройстве, в левом верхнем углу вы увидите ваше устройство с подключенным статусом. Нажмите на механизм и прокрутите вниз до заголовка раздела "Отладка по Bluetooth". Убедитесь, что настройки выглядят так:

 **Debugging over Bluetooth**
 Host: disconnected
 Target: connected

Затем запустите эти две команды

adb forward tcp:4444 localabstract:/adb-hub
adb connect localhost:4444

Наконец, запустите эту команду

adb devices

Вы должны увидеть два подключенных устройства.

**List of devices attached**
localhost:4444 device
"Device Name" device

Если у вас есть что-то похожее на это

**List of devices attached**
localhost:4444 unauthorized
"Device Name" device 

Вам необходимо включить режим отладки на устройстве Android Wear. Это можно сделать, перейдя в

Settings->About and pressing the Build Number tab 7 times. 

Вернуться к

Settings->Developer Options, this should have just appeared. 

Обязательно включите отладку ADB и отладку по Bluetooth

Наконец, теперь, когда у вас подключены оба устройства, вы можете использовать эту команду для установки APK на ваше устройство Android Wear

adb -e install -r <path to APK>

Быстрое примечание, это займет около 10 минут, и ничего не произойдет. Просто наберитесь терпения и подождите. В конце концов вы получите ответ, который выглядит следующим образом:

76 KB/s (18622942 bytes in 238.161s)
pkg: /data/local/tmp/com.google.android.gms_9.2.56_(534-   124593566)-9256534_minAPI20(armeabi-v7a)(240dpi)_apkmirror.com.apk
Success

Как только оба устройства будут иметь одинаковые версии сервиса Google Play, вам будет хорошо. Удачного кодирования!

В моем случае я получал ошибку при компиляции

compile 'com.google.android.gms:play-services:9.8.0"

Обновление до 10.0.1, исправлено.

У меня была эта проблема, когда я пытался протестировать на эмуляторе износа Android с запущенными сервисами 7.1.1 W play 10.2.89. У меня была зависимость build.gradle, установленная в модуле износа 11.0.1. Самое простое и быстрое решение - вы пытаетесь установить версию Play Services в вашем build.gradle равной или меньшей, чем та, что у вас есть на вашем устройстве или эмуляторе, в моем случае я установил:

compile 'com.google.android.gms:play-services-wearable:10.0.1'

и это сработало.

Другие вопросы по тегам