2016-04-13 10 views
4

Google Fit APIからセンサーAPIを統合しようとしています。私はGoogleクライアントを構築していますが、どのステータスでもコールバックはありません。Google Fit API - コールバックレスなし

private void buildFitnessClient() { 

     if (mClient == null && checkPermissions()) { 

      Log.i(TAG, "Building Fitness Client"); 

      mClient = new GoogleApiClient.Builder(this) 
        .addApi(Fitness.SENSORS_API) 
        .addScope(new Scope(Scopes.FITNESS_LOCATION_READ)) 
        .addScope(new Scope(Scopes.FITNESS_ACTIVITY_READ)) 
        .addScope(new Scope(Scopes.FITNESS_ACTIVITY_READ_WRITE)) 
        .addConnectionCallbacks(
          new GoogleApiClient.ConnectionCallbacks() { 
           @Override 
           public void onConnected(Bundle bundle) { 
            Log.i(TAG, "Connected!!!"); 
            // Now you can make calls to the Fitness APIs. 
            findFitnessDataSources(); 
           } 

           @Override 
           public void onConnectionSuspended(int i) { 
            // If your connection to the sensor gets lost at some point, 
            // you'll be able to determine the reason and react to it here. 
            if (i == GoogleApiClient.ConnectionCallbacks.CAUSE_NETWORK_LOST) { 
             Log.i(TAG, "Connection lost. Cause: Network Lost."); 
            } else if (i 
              == GoogleApiClient.ConnectionCallbacks.CAUSE_SERVICE_DISCONNECTED) { 
             Log.i(TAG, 
               "Connection lost. Reason: Service Disconnected"); 
            } 
           } 
          } 
        ) 
        .enableAutoManage(this, 0, new GoogleApiClient.OnConnectionFailedListener() { 
         @Override 
         public void onConnectionFailed(ConnectionResult result) { 
          Log.i(TAG, "Google Play services connection failed. Cause: " + 
            result.toString()); 
          Snackbar.make(
            MainActivity.this.findViewById(R.id.main_activity_view), 
            "Exception while connecting to Google Play services: " + 
              result.getErrorMessage(), 
            Snackbar.LENGTH_INDEFINITE).show(); 
         } 
        }) 
        .build(); 
     } 
    } 

LOGCATで、私は "ビルフィットネスクライアント" をログ見ることができます:

は、ここに私のコードです。その後、それはすべて空白です。エラーはありません。何もない。 LOGCAT:

04-13 07:21:40.964 13226-13226/com.hbeat.hbeat I/BasicSensorsApi﹕ Ready 
04-13 07:21:40.964 13226-13226/com.hbeat.hbeat I/BasicSensorsApi﹕ Building Fitness Client 
04-13 07:21:41.154 13226-13226/com.hbeat.hbeat I/Timeline﹕ Timeline: Activity_idle id: [email protected] time:435161647 
04-13 07:21:41.154 13226-13226/com.hbeat.hbeat I/Timeline﹕ Timeline: Activity_idle id: [email protected] time:435161647 
04-13 07:21:42.154 13226-13243/com.hbeat.hbeat I/GMPM﹕ Tag Manager is not found and thus will not be used 
04-13 07:21:43.674 13226-13226/com.hbeat.hbeat W/FragmentActivity﹕ Activity result delivered for unknown Fragment. 
04-13 07:21:43.694 13226-13226/com.hbeat.hbeat I/Timeline﹕ Timeline: Activity_idle id: [email protected] time:435164182 

私はSDK Managerで最新のものとして示されている8.4.0(リビジョン29)と私のキットカットデバイスや建物に最新のプレイ・サービス(8.7.03)を使用しています。

このアプリのGoogle開発者コンソールにプロジェクトを正しく追加しました。

+0

? .enableAutoManage(..)を使用している場合は、FragmentActivityを拡張する必要があります。 – uguboz

+0

解決方法をお探しですか? – suku

答えて

2

Googleが新しいAPIをリリースしました。この問題は解決されています。だからとあなたのbuild.gradleファイルを更新:

をコンパイル「com.google.android.gms:遊ぶ - サービス・フィットネス:10.0.0」

あなたは、この機能活性またはその断片をホストします
+0

あなたの努力に感謝します:) –

0

connect()およびdisconnect()メソッドに電話する必要があります。インタフェースは、Google Playサービスへの接続が成功した場合、失敗した場合、または中断された場合に、非同期のconnect()メソッドに応答してコールバックを受け取ります。

mClient.connect(); 

サンプルコードと詳細については、Manually Managed Connectionsを参照してください。

+0

私はそれをしました。それでも問題は残っています。 –

+0

私は同じ問題に直面しています。 – Smeet

関連する問題