Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Having trouble connecting to Google Play Services; Getting Cancelled status code

So I'm trying to work with Google Fit and for some reason I can't connect to Google Play Services in my app. I have the OAuth all set up completely and I tested it in another app and it all worked just fine. Specifically look at the GoogleFitRepository, this is where I'm connecting to the API.

I'm getting this error when trying to connect:

W/AutoManageHelper: Unresolved error while connecting client. Stopping auto-manage.
I/MyApp: Google Play services connection failed. Cause: ConnectionResult{statusCode=CANCELED, resolution=null, message=null}

Link to GitHub: https://github.com/drb56/FitnessExplorer

Any help would be greatly appreciated. I've been stuck on this all day!

Edit: here's some code from the class in question

public GoogleFitRepository(Activity activity)
{
    mClient = new GoogleApiClient.Builder(activity.getApplicationContext())
            .addApi(Fitness.HISTORY_API)
            .addApi(Fitness.SESSIONS_API)
            .addScope(new Scope(Scopes.FITNESS_ACTIVITY_READ))
            .addConnectionCallbacks(this)
            .enableAutoManage((FragmentActivity)activity, 0, new GoogleApiClient.OnConnectionFailedListener() {
                @Override
                public void onConnectionFailed(ConnectionResult result) {
                    Log.i("MyApp", "Google Play services connection failed. Cause: " +
                            result.toString());
                }})
            .build();

    activityList = new ArrayList<>();
    activityDataPointList = new ArrayList<>();
    calorieActivitiesToday = new ArrayList<>();
    dayActivities = new ArrayList<>();
}
like image 384
user292277 Avatar asked Dec 14 '25 15:12

user292277


1 Answers

The new update requires google signin api to be executed along with the fit api.

GoogleSignInOptions gso = new GoogleSignInOptions.Builder(GoogleSignInOptions.DEFAULT_SIGN_IN)
        .requestEmail()
        .requestScopes(new Scope(Scopes.FITNESS_ACTIVITY_READ_WRITE), new Scope(Scopes.FITNESS_LOCATION_READ))
        .build();

googleApiClient = new GoogleApiClient.Builder(activity)
        .addApi(Auth.GOOGLE_SIGN_IN_API, gso)
        .addConnectionCallbacks(connectionCallbacks)
        .addOnConnectionFailedListener(failedListener)
        .addApi(Fitness.HISTORY_API)
        .addApi(Fitness.SESSIONS_API)
        .addApi(Fitness.RECORDING_API)
        .addApi(Fitness.SENSORS_API)
        .enableAutoManage(this, 0, this)
        .build();

You have to enable Auth API on console.developers.google.com. Please go through the server side implementation of Google Auth API. Otherwise the above code will not work

like image 124
suku Avatar answered Dec 17 '25 05:12

suku



Donate For Us

If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!