.useDefaultAccount()for GoogleApiClient无法正常工作

时间:2016-10-11 18:31:34

标签: android google-api google-play-services google-api-java-client

我正在尝试从Google Play服务初始化History 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;

2 个答案:

答案 0 :(得分:0)

Google API客户端应该是Activity的built on the onCreate方法,而不是AsyncTask内部。尝试将代码块移动到适当的类。这可能是您获得 Intent intent = getActivity().getPackageManager().getLaunchIntentForPackage("com.gau.go.launcherex"); Intent go_action = new Intent("com.gau.go.launcherex.MyThemes.mythemeaction"); go_action.putExtra("type", 1); go_action.putExtra("pkgname", getActivity().getPackageName()); getActivity().sendBroadcast(go_action); getActivity().startActivity(intent);

的原因

答案 1 :(得分:0)

确保您正在onActivityResult()中正确处理帐户选择结果。如果您尚未连接到GoogleApiClient,则对话框将一直显示。