向 GoogleApiClient 添加云消息 api 时出现 IllegalArgumentException

IllegalArgumentException when adding cloud messaging api to GoogleApiClient

我正在 Android 应用程序中设置 Google 云消息传递。一开始,我初始化 GoogleApiClient 以检查 Play 服务是否可用:

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

尝试 运行 它产生 IllegalArgumentException: must call addApi() to add at least one API,所以我还需要添加 GCM Api,但老实说我在文档中找不到它。类似于:

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

看起来还没有办法将 GoogleApiClient 与 Google 云消息传递结合使用。在那之前,我们需要使用 GooglePlayServicesUtil 方式。

试试这个代码

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