Android Wear Error ConnectionResult{statusCode=SERVICE_VERSION_UPDATE_REQUIRED, resolution=null}

Android Wear Error 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'

至于两者,掌机,如佩build.gradle。

可穿戴Activity:

@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();
    }

我进行了研究,但找不到任何可行的解决方案。

我在 ASUS ZenWatch 上使用 Google Play Services 时遇到了类似的问题,

在可穿戴设备中总是抛出错误:

ConnectionResult{statusCode=SERVICE_VERSION_UPDATE_REQUIRED, resolution=null

Google Play services out of date. Requires 7327000 but found 6774534

我发现可穿戴设备和手持设备 Google Play 服务可能不同步,我不知道为什么。

所以,检查可穿戴设备 Google Play 服务版本

设置 -> 关于 -> 软件版本

并重新同步应用程序

启动 Android Wear 应用程序 -> 单击齿轮图标 -> select 您的设备 -> 重新同步应用程序

等待 3-5 分钟,检查可穿戴设备 Google Play 服务版本。

同步完成后,也许你可以工作。

希望你能理解我蹩脚的英语。

如果所选答案对某些人不起作用,请试试这个。要获得最新的 google play services for wear 是 dl 模拟器的最新系统映像(API 22 as of this post)。我之前使用的是 API 21

我通过降级 gradle 脚本中的库版本解决了同样的问题。

phone 项目依赖项最初是

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 后,phone 不再要求升级某些东西。

我遇到了同样的问题。

我可以通过将 Android Play 服务更新为 Android 移动设备和 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:确保获得与您的其他设备相同的版本 - 这个 link 包含下载,也很好有关为您的设备查找正确 APK 的信息。

您可以使用此命令将 APK 安装到您的 Android 移动设备。如果您的设备上安装了 Google Play 服务的当前版本,则需要 -r(重新安装)。

adb install -r <path to APK>

您还可以使用蓝牙将 APK 直接安装到您的 Android Wear 设备(如果该设备需要更新)。这需要更多的工作。

首先,确保您的 Wear 和移动设备已配对。导航至移动设备上的 "Android Wear" 应用程序,在左上角您应该会看到设备处于已连接状态。单击齿轮并向下滚动到部分标题 "Debugging over 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 调试和通过蓝牙调试

最后,现在您已经连接了两个设备,您可以使用此命令将 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 wear 模拟器 运行 7.1.1 W play services 10.2.89 时遇到了这个问题。我的 build.gradle 依赖项在 wear 模块中设置了 11.0.1。 最简单最快的解决方案是您尝试将 build.gradle 中的播放服务版本设置为等于或小于您佩戴的设备或模拟器上的版本,在我的情况下我设置为:

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

成功了。