IllegalArgumentException when adding cloud messaging api to GoogleApiClient

2.1k views Asked by At

I am setting up Google Cloud Messaging in an Android application. At the beginning, I initialise the GoogleApiClient in order to check whether the Play Services are available:

mGoogleApiClient = new GoogleApiClient.Builder(this)
        .addConnectionCallbacks(this)
        .addOnConnectionFailedListener(this)
        .build();

Trying to run it produces IllegalArgumentException: must call addApi() to add at least one API, so I also need to add the GCM Api, but honestly I can't find it on the documentation. Something like:

mGoogleApiClient = new GoogleApiClient.Builder(this)
        .addApi(gcm.API)     <----- WHAT HERE?
        .addConnectionCallbacks(this)
        .addOnConnectionFailedListener(this)
        .build();
2

There are 2 answers

4
ticofab On BEST ANSWER

It looks like there is no way yet to use GoogleApiClient in conjunction with Google Cloud Messaging. Until then, we need to use the GooglePlayServicesUtil way.

1
Mohamad.johsghani On

Try this code

GoogleApiClient apiClient = new GoogleApiClient.Builder(this)
                .enableAutoManage(
                                  this /* FragmentActivity */
                                  , this /* OnConnectionFailedListener */)                    
                .addApi(Auth.CREDENTIALS_API)
                .build();