创建新的GoogleApiClient时的状态码16

时间:2015-03-21 17:53:57

标签: android google-api-client

我正在尝试创建一个基本的可穿戴应用程序,它接受来自主Android应用程序的新位图。不幸的是,当我尝试.build()GoogleApiClient时,调用连接失败的侦听器,错误代码为16。

这是从ConnectionFailedListener

收到的确切错误
  

03-21 13:36:35.903 3089-3089 / com.example.android.wearable.watchface   D / Watch Face配置:onConnectionFailed:   ConnectionResult {statusCode =未知状态代码16,分辨率= null}


应用代码:

        // create the api client to allow sending information to the wearable
    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();

在可穿戴应用程序中,我创建了一个DataListenerService,但目前无关紧要,因为API未正确构建。

感谢您的任何帮助或评论!!

更新 - 我将模拟器设备目标从 Google API 更改为 Android 5.0.1 ,错误更改为:

  

03-21 14:18:24.620 3025-3025 / com.example.android.wearable.watchface   D / Watch Face配置:onConnectionFailed:   ConnectionResult {statusCode = SERVICE_MISSING,resolution = null}

更新2 - 找到this条并按照说明操作。然后我的应用程序无法编译。之后,我根据标记的答案建议去了SDK管理器并检查了Google Play服务(他们没有安装)。现在应用程序构建但仍然提供上面的SERVICE_MISSING错误。

2 个答案:

答案 0 :(得分:1)

您需要在设备上安装Google Play服务并使用Android Wear app才能使用可穿戴API。默认情况下,模拟器没有它,因此要么手动安装,要么使用已经装有它的设备。

如果您正在使用Genymotion,只需download Google Play Services并拖动&放下模拟器。然后使用您的Google帐户登录并使用Play商店下载Android Wear应用。

更多信息herehere

如果你使用Genymotion,你现在应该开始这样做,因为它比标准AVD快得多。

请记住,虽然这样可以让您的GoogleApiClient成功连接,但如果您想真实地建立模拟器和可穿戴设备(或可穿戴模拟器)之间,您仍然需要建立连接使用Wearable API。因此,请参阅有关如何创建或模拟蓝牙连接的其他问题for example this one

编辑:官方Android模拟器现在更快更快安装了Google Play服务。

答案 1 :(得分:1)

查看这个问题:

Android Wear - Unexpected error code 16

我有类似的问题。错误代码告诉您未安装Android Wear应用程序。在onConnectionFailedListener中,您需要添加以下内容:

// Connection failed listener method for a client that only
// requests access to the Wearable API
@Override
public void onConnectionFailed(ConnectionResult result) {
    if (result.getErrorCode() == ConnectionResult.API_UNAVAILABLE) {
    // The Android Wear app is not installed
    }
    ...
}

从这里开始:

https://developer.android.com/google/auth/api-client.html#Starting

"访问可穿戴API"