我正在尝试创建一个基本的可穿戴应用程序,它接受来自主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错误。
答案 0 :(得分:1)
您需要在设备上安装Google Play服务并使用Android Wear app才能使用可穿戴API。默认情况下,模拟器没有它,因此要么手动安装,要么使用已经装有它的设备。
如果您正在使用Genymotion,只需download Google Play Services并拖动&放下模拟器。然后使用您的Google帐户登录并使用Play商店下载Android Wear应用。
如果你不使用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"