Android Wear 错误 连接结果{statusCode=SERVICE_VERSION_UPDATE_REQUIRED, resolution=null}

7

我想做一个易于佩戴的应用程序,并通过数据层进行连接。使用手持模块(使用:S5)时一切正常,但佩戴设备(使用:Moto 360)总是出现错误:

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

手持设备上的play服务已经更新到最新版本。

我已经添加了

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

我已经做过研究,但是没有找到任何可行的解决方案。


如果您正在使用穿戴设备模拟器,请确保您的模拟器具有最新的Android版本。我曾经使用API 22的模拟器并且遇到了错误。然后我创建了一个新的API 24(7.0 Nougat)的模拟器,它可以正常工作。 - Albert Vila Calvo
6个回答

6

我在ASUS ZenWatch上使用Google Play服务时遇到了类似的问题,在可穿戴设备上一直抛出错误:

ConnectionResult{statusCode=SERVICE_VERSION_UPDATE_REQUIRED, resolution=null

Google Play服务已过期,需要7327000版本,但发现只有6774534。

我发现可穿戴设备和手持设备的Google Play服务可能没有同步,但我不知道原因。

enter image description here

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

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

重新同步应用程序

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

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

同步完成后,也许可以解决问题。

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


2
谷歌游戏服务在我的设备上无法同步。我的手机版本是8.1.15,手表模拟器版本是7.3.27。 - user2968401

2
如果选中的答案对某些人无效,请尝试以下方法。为了获取最新的Google Wear Play服务,请下载最新的系统镜像(本文发布时为API 22),我之前使用的是API 21。请保留HTML标签,不需要进行解释。

1

我曾经遇到过同样的问题。

通过将Android手机和Android Wear设备上的Android Play服务更新为相同版本,我成功地解决了这个问题。

您可以通过以下步骤检查您的移动设备上的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 移动设备上。如果您的设备上已安装了当前版本的 Google Play 服务,则需要 -r(重新安装)。
adb install -r <path to APK>

您还可以通过蓝牙直接将APK安装到您的Android Wear设备上,如果需要更新该设备。这需要更多的工作。
首先,请确保您的Wear和Mobile设备已配对。导航到您的Mobile设备上的“Android Wear”应用程序,在左上角,您应该看到连接状态的设备。单击齿轮并向下滚动到标题为“通过蓝牙调试”的部分。确保设置看起来像这样:
 **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服务版本,您就可以开始了。祝你编程愉快!


1
我曾通过在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后,手机停止了升级要求。

0

我在尝试测试运行7.1.1 W play服务10.2.89的Android Wear模拟器时遇到了这个问题。 我在wear模块中设置了我的build.gradle依赖项为11.0.1。 最简单和最快速的解决方案是尝试将您的build.gradle中的play服务版本设置为等于或小于您在wear设备或模拟器上拥有的版本,在我的情况下,我设置为:

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

它起作用了。


0
在我的情况下,当编译时遇到了错误。
compile 'com.google.android.gms:play-services:9.8.0"

升级到10.0.1,问题已解决。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接