添加Fitness API时,GoogleApiClient将无法连接

时间:2016-07-09 03:56:00

标签: android wear-os google-fit

我的服务中有一个健身GoogleApiClient,运行正常...直到我添加Fitness API。

    googleApiClient = new GoogleApiClient.Builder(this)
            .addConnectionCallbacks(this)
            .addOnConnectionFailedListener(this)
            .addApi(Wearable.API)
            .addApi(LocationServices.API)
            .addApi(Fitness.HISTORY_API)
            .addApi(Fitness.RECORDING_API)
            .useDefaultAccount()
            .build();

我的WatchService(针对Android Wear)具有完全相同的设置,并且完全没有任何问题...但只要我将其添加到手机应用程序中的服务...它将无法连接一点都不。

如果我取出这2行 - 它会立即连接。

            .addApi(Fitness.HISTORY_API)
            .addApi(Fitness.RECORDING_API)

建议?

所以看起来Fitness.HISTORY_API需要在手机App上登录 - 但不在手表上...奇怪......我只尝试过Fitness.HISTORY_API并且仍然需要登录。< / p>

1 个答案:

答案 0 :(得分:0)

我的某个时刻也出现SIGN_IN_REQUIRED错误,它甚至不会要求登录我的Google帐户,这听起来像是发生在你身上的事情。要申请登录,我使用了ConnectionResult.startResolutionForResult,如下所示:

.addOnConnectionFailedListener(new GoogleApiClient.OnConnectionFailedListener() {
    @Override
    public void onConnectionFailed(@NonNull ConnectionResult result) {
        Log.i(TAG, "Google Play services connection failed. Cause: " + result.toString());
        Snackbar.make(/*...*/).show();
        try {
            Log.i(TAG, "Requesting login...");

            ////////////////////////// HERE //////////////////////////////
            result.startResolutionForResult(MainActivity.this, REQUEST_LOGIN);
        }
        catch (Exception e) {
            // Handle exception however you like
        }
    }
})