我试图从Google Play服务初始化历史API。现在,自从我们更新了我们的应用程序,.useDefaultAccount()
方法不能正常工作,连接结果失败。这将导致登录提示出现在我们的应用程序中,用户需要选择他们的帐户。我们希望防止这种情况发生。有办法做到吗?
如何创建客户端对象并连接它(在AsyncTask
中):
GoogleApiClient apiClient = new GoogleApiClient.Builder(context)
.addApi(Fitness.HISTORY_API)
.useDefaultAccount()
.build();
ConnectionResult connectionResult = apiClient.blockingConnect();
if (!connectionResult.isSuccess()) {
if (connectionResult.hasResolution() && context instanceof Activity) {
try {
connectionResult.startResolutionForResult((Activity) context, 1);
} catch (IntentSender.SendIntentException e) {
// Utter Failure
}
}
}
return null;
Google API客户端应该建立在活动的onCreate
方法上,而不是在AsyncTask中。尝试将代码块移动到适当的类中。这可能是您获得SendIntentException
的原因。
确保在onActivityResult()中正确处理帐户选择结果。如果您没有连接到GoogleApiClient,对话框将继续显示。