Google Fit-Android wear 2.0中的请求超时

Google Fit-Android wear 2.0中的请求超时,android,wear-os,google-fit,android-wear-2.0,Android,Wear Os,Google Fit,Android Wear 2.0,我在Android Wear 2.0上获取google fit数据时遇到问题。 我的请求得到超时响应。如果await()方法没有参数,则没有响应(await()方法没有返回)。有什么线索吗 应用程序使用,所有东西都可以在普通的安卓设备上运行 创建GoogleAppClient和SignInAccount GoogleSignInOptions signInConfig = new GoogleSignInOptions .Builder(GoogleSignIn

我在Android Wear 2.0上获取google fit数据时遇到问题。 我的请求得到超时响应。如果await()方法没有参数,则没有响应(await()方法没有返回)。有什么线索吗

应用程序使用,所有东西都可以在普通的安卓设备上运行

创建GoogleAppClient和SignInAccount

 GoogleSignInOptions signInConfig = new GoogleSignInOptions
                .Builder(GoogleSignInOptions.DEFAULT_SIGN_IN)
                .requestEmail()
                .requestScopes(new Scope(Scopes.FITNESS_LOCATION_READ),new Scope(Scopes.FITNESS_ACTIVITY_READ))
                .build();
        client = new GoogleApiClient.Builder(this)
                .enableAutoManage(this,this)
                .addApi(Auth.GOOGLE_SIGN_IN_API, signInConfig)
                .addApi(Fitness.HISTORY_API)
                .addApi(Fitness.GOALS_API)
                .addConnectionCallbacks(this)
                .addOnConnectionFailedListener(this)
                .build();
登录过程完成后,我运行:

 new Thread(new Runnable() {
            @Override
            public void run() {
                PendingResult<DailyTotalResult> result =
                        Fitness.HistoryApi.readDailyTotal(client, TYPE_STEP_COUNT_DELTA);
                DailyTotalResult totalResult = result.await(60,TimeUnit.SECONDS);
                if (totalResult.getStatus().isSuccess()) {
                    DataSet totalSet = totalResult.getTotal();
                    long total = totalSet.isEmpty()? 0 : totalSet.getDataPoints().get(0).getValue(FIELD_STEPS).asInt();
                    p("daily steps " + total);
                }}).start();
    }
new线程(new Runnable()){
@凌驾
公开募捐{
Pendingreult结果=
Fitness.HistoryApi.readDailyTotal(客户端,类型\步骤\计数\增量);
DailyTotalResult totalResult=结果。等待(60,时间单位。秒);
if(totalResult.getStatus().isSuccess()){
DataSet totalSet=totalResult.getTotal();
long total=totalSet.isEmpty()?0:totalSet.getDataPoints().get(0).getValue(字段步骤).asInt();
p(“每日步数”+总计);
}}).start();
}

您可能希望检查正确的过程,其中讨论了将数据插入到适应度历史记录中,首先在使用该方法之前创建一个实例并同步等待,或者提供一个回调方法来检查插入的状态

有关更详细的信息和示例代码,您可能需要检查。

询问了类似的问题。多亏了我们才设法解决了这个问题。您必须使用两个不同的GoogleAppClient,一个用于进行身份验证,另一个用于获取数据。 我不确定这是否是使用谷歌登录的正确方式,但它确实有效。 //然而,在Wear 2.0上,范围似乎还没有得到正确的解决

  @Override
        protected void onActivityResult(int requestCode, int resultCode, Intent data) {
            super.onActivityResult(requestCode, resultCode, data);
            if (requestCode == RC_SIGN_IN) {
                GoogleSignInResult signInResult = Auth.GoogleSignInApi.getSignInResultFromIntent(data);
                if (signInResult.isSuccess()) {
                    acct = signInResult.getSignInAccount();
                    editor.putString(ACCOUNT_NAME_PREFS,acct.getEmail());
                    editor.commit();
                    dataGoogleApiClientBuilder.setAccountName(acct.getEmail());
                    dataGoogleApiClient = dataGoogleApiClientBuilder.build();
                    dataGoogleApiClient.connect();
                    [...]