这让我很生气。我有一个客户端试图连接到谷歌健身API在安卓应用程序。客户端之前已经被授权(并且该步骤有效)。
电话:
GoogleApiClient.Builder builder = new GoogleApiClient.Builder(activity.getApplicationContext())
.addApi(Fitness.SESSIONS_API)
.addApi(Fitness.SENSORS_API)
.addScope(new Scope(Scopes.FITNESS_ACTIVITY_READ_WRITE))
.addConnectionCallbacks(new GoogleApiClient.ConnectionCallbacks() {
@Override
public void onConnected(@Nullable Bundle bundle) {
LogExt.i(MyClass.class, "Connected to Google Fit....");
}
@Override
public void onConnectionSuspended(int i) {
LogExt.d(MyClass.class, "Connection to Google APIs suspended");
}
});
builder.enableAutoManage(PinCodeActivity.instance, new GoogleApiClient.OnConnectionFailedListener() {
@Override
public void onConnectionFailed(@NonNull ConnectionResult connectionResult) {
if (connectionResult.isSuccess()) {
LogExt.i(MyClass.class, "Connected to Google Fit !");
} else {
LogExt.e(MyClass.class, "Cannot connect Google Fit: " + connectionResult.getErrorMessage());
}
}
});
}
gclient = builder.build();
LogExt.d(MyClass.class, "Going to connect to Google APIs...");
gclient.connect();
应用程序什么也不做。日志未打印。没有连接。没有断开连接。什么都没有。我已经看了总日志,但还是找不到任何线索。
运行在三星Galaxy S6, android 6.0.1,导入库:com.google.android.gms:play-services-fitness:9.4.0
我迷路了。请帮助!
我找到问题了。它与传递给enableAutoManage()的活动有关。传递的活动随后被销毁,因此客户端在某处丢失了。
遗憾的是,客户端必须绑定到一个活动,因为一个人不能用同一个客户端经历不同的活动,但这就是它的方式。遗憾的是,没有可以依赖的反馈来调试它。