4

I am trying to integrate Sensors API from Google Fit APIs. I am building the google client but there is no callback on any status.

Here is my code:

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();
        }
    }

In LOGCAT, I can see log "Building Fitness Client". After that, it's all blank. No error. Nothing. 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: android.os.BinderProxy@42e7f528 time:435161647
04-13 07:21:41.154  13226-13226/com.hbeat.hbeat I/Timeline﹕ Timeline: Activity_idle id: android.os.BinderProxy@42ddbcf0 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: android.os.BinderProxy@42e7f528 time:435164182

I am using latest play services(8.7.03) on my KITKAT device and building with 8.4.0(revision 29) which is shown as most recent in SDK Manager.

I have correctly added project in google developer console for this app.

Harshil Pansare
  • 1,117
  • 1
  • 13
  • 37

2 Answers2

2

Google released new API and this issue is resolved in it. So just update your build.gradle file with:

compile 'com.google.android.gms:play-services-fitness:10.0.0'

Smeet
  • 4,036
  • 1
  • 36
  • 47
0

You need to call the connect() and disconnect() methods. Interfaces receives callbacks in response to the asynchronous connect() method when the connection to Google Play services succeeds, fails, or becomes suspended.

mClient.connect();

Sample codes and more information can be found in Manually Managed Connections.

Teyam
  • 7,686
  • 3
  • 15
  • 22