Summary: Ctors | Methods | Inherited Methods | [Expand All]
public static final class

# GoogleApiClient.Builder

extends Object

java.lang.Object
↳ | com.google.android.gms.common.api.GoogleApiClient.Builder

## Class Overview

Builder to configure a `GoogleApiClient`.

Example:

     GoogleApiClient client = new GoogleApiClient.Builder(this)
             .enableAutoManage(this /* FragmentActivity */,
                                     this /* OnConnectionFailedListener */)
             .addApi(Plus.API)
             .addScope(Plus.SCOPE_PLUS_LOGIN)
             .setAccountName("users.account.name@gmail.com")
             .build();

##### See Also

- Accessing Google APIs

## Summary

Public Constructors
| GoogleApiClient.Builder(Context context) Builder to help construct the `GoogleApiClient` object.
| GoogleApiClient.Builder(Context context, GoogleApiClient.ConnectionCallbacks connectedListener, GoogleApiClient.OnConnectionFailedListener connectionFailedListener) Builder to help construct the `GoogleApiClient` object.

Public Methods
<O extends Api.ApiOptions.HasOptions> GoogleApiClient.Builder | addApi(Api<O> api, O options) Specify which Apis are requested by your app.
GoogleApiClient.Builder | addApi(Api<? extends Api.ApiOptions.NotRequiredOptions> api) Specify which Apis are requested by your app.
<O extends Api.ApiOptions.HasOptions> GoogleApiClient.Builder | addApiIfAvailable(Api<O> api, O options, Scope... scopes) Specify which Apis should attempt to connect, but are not strictly required for your app.
GoogleApiClient.Builder | addApiIfAvailable(Api<? extends Api.ApiOptions.NotRequiredOptions> api, Scope... scopes) Specify which Apis should attempt to connect, but are not strictly required for your app.
GoogleApiClient.Builder | addConnectionCallbacks(GoogleApiClient.ConnectionCallbacks listener) Registers a listener to receive connection events from this `GoogleApiClient`.
GoogleApiClient.Builder | addOnConnectionFailedListener(GoogleApiClient.OnConnectionFailedListener listener) Adds a listener to register to receive connection failed events from this `GoogleApiClient`.
GoogleApiClient.Builder | addScope(Scope scope) Specify the OAuth 2.0 scopes requested by your app.
GoogleApiClient | build() Builds a new `GoogleApiClient` object for communicating with the Google APIs.
GoogleApiClient.Builder | enableAutoManage(FragmentActivity fragmentActivity, GoogleApiClient.OnConnectionFailedListener unresolvedConnectionFailedListener) Enables automatic lifecycle management in a support library `FragmentActivity` that connects the client in `onStart()` and disconnects it in `onStop()`.
GoogleApiClient.Builder | enableAutoManage(FragmentActivity fragmentActivity, int clientId, GoogleApiClient.OnConnectionFailedListener unresolvedConnectionFailedListener) Enables automatic lifecycle management in a support library `FragmentActivity` that connects the client in `onStart()` and disconnects it in `onStop()`.
GoogleApiClient.Builder | setAccountName(String accountName) Specify an account name on the device that should be used.
GoogleApiClient.Builder | setGravityForPopups(int gravityForPopups) Specifies the part of the screen at which games service popups (for example, "welcome back" or "achievement unlocked" popups) will be displayed using gravity.
GoogleApiClient.Builder | setHandler(Handler handler) Sets a `Handler` to indicate which thread to use when invoking callbacks.
GoogleApiClient.Builder | setViewForPopups(View viewForPopups) Sets the `View` to use as a content view for popups.
GoogleApiClient.Builder | useDefaultAccount() Specify that the default account should be used when connecting to services.

[Expand] Inherited Methods
From class java.lang.Object
Object | clone()
boolean | equals(Object arg0)
void | finalize()
final Class<?> | getClass()
int | hashCode()
final void | notify()
final void | notifyAll()
String | toString()
final void | wait(long arg0, int arg1)
final void | wait(long arg0)
final void | wait()

## Public Constructors

#### public GoogleApiClient.Builder (Context context)

Builder to help construct the `GoogleApiClient` object.

##### Parameters

context | The context to use for the connection.

#### public GoogleApiClient.Builder (Context context, GoogleApiClient.ConnectionCallbacks connectedListener, GoogleApiClient.OnConnectionFailedListener connectionFailedListener)

Builder to help construct the `GoogleApiClient` object.

##### Parameters

context | The context to use for the connection.
connectedListener | The listener where the results of the asynchronous `connect()` call are delivered.
connectionFailedListener | The listener which will be notified if the connection attempt fails.

## Public Methods

#### public GoogleApiClient.Builder addApi (Api<O> api, O options)

Specify which Apis are requested by your app. See `Api` for more information.

##### Parameters

api | The Api requested by your app.
options | Any additional parameters required for the specific AP

##### See Also

- `Api`

#### public GoogleApiClient.Builder addApi (Api<? extends Api.ApiOptions.NotRequiredOptions> api)

Specify which Apis are requested by your app. See `Api` for more information.

##### Parameters

api | The Api requested by your app.

##### See Also

- `Api`

#### public GoogleApiClient.Builder addApiIfAvailable (Api<O> api, O options, Scope... scopes)

Specify which Apis should attempt to connect, but are not strictly required for your app. The GoogleApiClient will try to connect to these Apis, but will not necessarily fail if there are only errors when connecting to an unavailable Api added with this method. See `Api` for more information.

##### Parameters

api | The Api requested by your app.
scopes | Scopes required by this API.

##### See Also

- `Api`

#### public GoogleApiClient.Builder addApiIfAvailable (Api<? extends Api.ApiOptions.NotRequiredOptions> api, Scope... scopes)

Specify which Apis should attempt to connect, but are not strictly required for your app. The GoogleApiClient will try to connect to these Apis, but will not necessarily fail if there are only errors when connecting to an unavailable Api added with this method. See `Api` for more information.

##### Parameters

api | The Api requested by your app.
scopes | Scopes required by this API.

##### See Also

- `Api`

#### public GoogleApiClient.Builder addConnectionCallbacks (GoogleApiClient.ConnectionCallbacks listener)

Registers a listener to receive connection events from this `GoogleApiClient`. Applications should balance calls to this method with calls to `unregisterConnectionCallbacks(ConnectionCallbacks)` to avoid leaking resources.

If the specified listener is already registered to receive connection events, this method will not add a duplicate entry for the same listener.

Note that the order of messages received here may not be stable, so clients should not rely on the order that multiple listeners receive events in.

##### Parameters

listener | the listener where the results of the asynchronous `connect()` call are delivered.

#### public GoogleApiClient.Builder addOnConnectionFailedListener (GoogleApiClient.OnConnectionFailedListener listener)

Adds a listener to register to receive connection failed events from this `GoogleApiClient`. Applications should balance calls to this method with calls to `unregisterConnectionFailedListener(OnConnectionFailedListener)` to avoid leaking resources.

If the specified listener is already registered to receive connection failed events, this method will not add a duplicate entry for the same listener.

Note that the order of messages received here may not be stable, so clients should not rely on the order that multiple listeners receive events in.

##### Parameters

listener | the listener where the results of the asynchronous `connect()` call are delivered.

#### public GoogleApiClient.Builder addScope (Scope scope)

Specify the OAuth 2.0 scopes requested by your app. See `Scopes` for more information.

It is an error to call this method when using `GOOGLE_SIGN_IN_API`. Use `requestScopes(Scope, Scope...)` instead.

##### Parameters

scope | The OAuth 2.0 scopes requested by your app.

##### See Also

- `Scopes`

#### public GoogleApiClient build ()

Builds a new `GoogleApiClient` object for communicating with the Google APIs.

##### Returns

- The `GoogleApiClient` object.

#### public GoogleApiClient.Builder enableAutoManage (FragmentActivity fragmentActivity, GoogleApiClient.OnConnectionFailedListener unresolvedConnectionFailedListener)

Enables automatic lifecycle management in a support library `FragmentActivity` that connects the client in `onStart()` and disconnects it in `onStop()`.

It handles user recoverable errors appropriately and calls `onConnectionFailed(ConnectionResult)` on the unresolvedConnectionFailedListener if the `ConnectionResult` has no resolution. This eliminates most of the boiler plate associated with using `GoogleApiClient`.

This method can only be used if this GoogleApiClient will be the only auto-managed client in the containing activity. The api client will be assigned a default client id.

When using this option, `build()` must be called from the main thread.

##### Parameters

fragmentActivity | The activity that uses the `GoogleApiClient`. For lifecycle management to work correctly the activity must call its parent's `onActivityResult(int, int, android.content.Intent)`.
unresolvedConnectionFailedListener | Called if the connection failed and there was no resolution or the user chose not to complete the provided resolution. If this listener is called, the client will no longer be auto-managed, and a new instance must be built. In the event that the user chooses not to complete a resolution, the `ConnectionResult` will have a status code of `CANCELED`.

##### Throws

NullPointerException | if fragmentActivity is null
IllegalStateException | if another GoogleApiClient is already being auto-managed with the default clientId.

##### See Also

- `enableAutoManage(FragmentActivity, int, OnConnectionFailedListener)`

#### public GoogleApiClient.Builder enableAutoManage (FragmentActivity fragmentActivity, int clientId, GoogleApiClient.OnConnectionFailedListener unresolvedConnectionFailedListener)

Enables automatic lifecycle management in a support library `FragmentActivity` that connects the client in `onStart()` and disconnects it in `onStop()`.

It handles user recoverable errors appropriately and calls if the `ConnectionResult` has no resolution. This eliminates most of the boiler plate associated with using `GoogleApiClient`.

When using this option, `build()` must be called from the main thread.

##### Parameters

fragmentActivity | The activity that uses the `GoogleApiClient`. For lifecycle management to work correctly the activity must call its parent's `onActivityResult(int, int, android.content.Intent)`.
clientId | A non-negative identifier for this client. At any given time, only one auto-managed client is allowed per id. To reuse an id you must first call `stopAutoManage(FragmentActivity)` on the previous client.
unresolvedConnectionFailedListener | Called if the connection failed and there was no resolution or the user chose not to complete the provided resolution. If this listener is called, the client will no longer be auto-managed, and a new instance must be built. In the event that the user chooses not to complete a resolution, the `ConnectionResult` will have a status code of `CANCELED`.

##### Throws

NullPointerException | if fragmentActivity is null
IllegalArgumentException | if clientId is negative.
IllegalStateException | if clientId is already being auto-managed.

#### public GoogleApiClient.Builder setAccountName (String accountName)

Specify an account name on the device that should be used. If this is never called, the client will use the current default account for Google Play services for this application.

It is an error to call this method when using `GOOGLE_SIGN_IN_API`. Use `#setAccountName(String)` instead.

##### Parameters

accountName | The account name on the device that should be used by `GoogleApiClient`.

#### public GoogleApiClient.Builder setGravityForPopups (int gravityForPopups)

Specifies the part of the screen at which games service popups (for example, "welcome back" or "achievement unlocked" popups) will be displayed using gravity.

Default value is `TOP`|`CENTER_HORIZONTAL`.

##### Parameters

gravityForPopups | The gravity which controls the placement of games service popups.

#### public GoogleApiClient.Builder setHandler (Handler handler)

Sets a `Handler` to indicate which thread to use when invoking callbacks. Will not be used directly to handle callbacks. If this is not called then the application's main thread will be used.

#### public GoogleApiClient.Builder setViewForPopups (View viewForPopups)

Sets the `View` to use as a content view for popups.

##### Parameters

viewForPopups | The view to use as a content view for popups. View cannot be null.

#### public GoogleApiClient.Builder useDefaultAccount ()

Specify that the default account should be used when connecting to services.