2017-01-26 20 views
0

Android Wear 2.0でgoogle適合データを取得する際に問題があります。 私の要求はTIMEOUT応答を得ています。 await()メソッドにパラメータがない場合、応答はありません(await()メソッドは返されません)。どのような手掛かりが間違っていますか?Google Fitでタイムアウトをリクエスト - Android Wear 2.0

アプリはGoogle Sign-Inを使用し、すべてが標準のAndroid搭載端末で動作します。 GoogleApiClientと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(); 
    } 

答えて

0

同様の問題がありましたhere at G+ GoogleFitDevelopersGroupPujieWearのおかげで、私たちは問題を解決することができました。 2つの異なるGoogleApiClientを使用する必要があります.1つは認証するため、もう1つはデータを取得することです。 Google Sign-Inを使用するのは適切な方法ではありませんが、うまく機能します。 //ただし、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(); 
        [...] 
0

あなたはそれがにデータを挿入することが議論された前記inserting dataで正しいプロセスをチェックすることもできますフィットネスの履歴は、HistoryApi.insertDataメソッドを使用する前にまずDataSetインスタンスを作成し、同期待機またはコールバックメソッドを提供して挿入ステータスを確認します。

さらに詳しい情報とサンプルコードについては、full documentationをご確認ください。

関連する問題