Summary: Constants | Fields | Methods | Inherited Methods | [Expand All]
public class

# GoogleApiAvailability

extends Object

java.lang.Object
↳ | com.google.android.gms.common.GoogleApiAvailability

## Class Overview

Helper class for verifying that the Google Play services APK is available and up-to-date on this device.

## Summary

Constants
String | GOOGLE_PLAY_SERVICES_PACKAGE | Package name for Google Play services.

Fields
public static final int | GOOGLE_PLAY_SERVICES_VERSION_CODE | Google Play services client library version (declared in library's AndroidManifest.xml android:versionCode).

Public Methods
Dialog | getErrorDialog(Activity activity, int errorCode, int requestCode) Returns a dialog to address the provided errorCode.
Dialog | getErrorDialog(Activity activity, int errorCode, int requestCode, DialogInterface.OnCancelListener cancelListener) Returns a dialog to address the provided errorCode.
PendingIntent | getErrorResolutionPendingIntent(Context context, ConnectionResult result) Returns a PendingIntent to address the provided connection failure.
PendingIntent | getErrorResolutionPendingIntent(Context context, int errorCode, int requestCode) Returns a PendingIntent to address the provided errorCode.
final String | getErrorString(int errorCode) Returns a human-readable string of the error code returned from isGooglePlayServicesAvailable(Context).
static GoogleApiAvailability | getInstance() Returns the singleton instance of GoogleApiAvailability.
String | getOpenSourceSoftwareLicenseInfo(Context context) Returns the open source software license information for the Google Play services application, or null if Google Play services is not available on this device.
int | isGooglePlayServicesAvailable(Context context) Verifies that Google Play services is installed and enabled on this device, and that the version installed on this device is no older than the one required by this client.
final boolean | isUserResolvableError(int errorCode) Determines whether an error can be resolved via user action.
Task<Void> | makeGooglePlayServicesAvailable(Activity activity) Attempts to make Google Play services available on this device.
boolean | showErrorDialogFragment(Activity activity, int errorCode, int requestCode) Displays a DialogFragment for an error code returned by `isGooglePlayServicesAvailable(Context)`.
boolean | showErrorDialogFragment(Activity activity, int errorCode, int requestCode, DialogInterface.OnCancelListener cancelListener) Displays a DialogFragment for an error code returned by `isGooglePlayServicesAvailable(Context)`.
void | showErrorNotification(Context context, int errorCode) Displays a notification for an error code returned from `isGooglePlayServicesAvailable(Context)`, if it is resolvable by the user.
void | showErrorNotification(Context context, ConnectionResult result) Displays a notification for a connection failure, if it is resolvable by the user.

[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()

## Constants

#### public static final String GOOGLE_PLAY_SERVICES_PACKAGE

Package name for Google Play services.

Constant Value: "com.google.android.gms"

## Fields

#### public static final int GOOGLE_PLAY_SERVICES_VERSION_CODE

Google Play services client library version (declared in library's AndroidManifest.xml android:versionCode).

## Public Methods

#### public Dialog getErrorDialog (Activity activity, int errorCode, int requestCode)

Returns a dialog to address the provided errorCode. The returned dialog displays a localized message about the error and upon user confirmation (by tapping on dialog) will direct them to the Play Store if Google Play services is out of date or missing, or to system settings if Google Play services is disabled on the device.

##### Parameters

activity | parent activity for creating the dialog, also used for identifying language to display dialog in.
errorCode | error code returned by `isGooglePlayServicesAvailable(Context)` call. If errorCode is `SUCCESS` then null is returned.
requestCode | The requestCode given when calling startActivityForResult.

#### public Dialog getErrorDialog (Activity activity, int errorCode, int requestCode, DialogInterface.OnCancelListener cancelListener)

Returns a dialog to address the provided errorCode. The returned dialog displays a localized message about the error and upon user confirmation (by tapping on dialog) will direct them to the Play Store if Google Play services is out of date or missing, or to system settings if Google Play services is disabled on the device.

##### Parameters

activity | parent activity for creating the dialog, also used for identifying language to display dialog in.
errorCode | error code returned by `isGooglePlayServicesAvailable(Context)` call. If errorCode is `SUCCESS` then null is returned.
requestCode | The requestCode given when calling startActivityForResult.
cancelListener | The `DialogInterface.OnCancelListener` to invoke if the dialog is canceled.

#### public PendingIntent getErrorResolutionPendingIntent (Context context, ConnectionResult result)

Returns a PendingIntent to address the provided connection failure.

If `hasResolution()` is true, then `getResolution()` will be returned. Otherwise, the returned PendingIntent will direct the user to either the Play Store if Google Play services is out of date or missing, or system settings if Google Play services is disabled on the device.

##### Parameters

context | parent context for creating the PendingIntent.
result | the connection failure. If successful or the error is not resolvable by the user, null is returned.

#### public PendingIntent getErrorResolutionPendingIntent (Context context, int errorCode, int requestCode)

Returns a PendingIntent to address the provided errorCode. It will direct the user to either the Play Store if Google Play services is out of date or missing, or system settings if Google Play services is disabled on the device.

##### Parameters

context | parent context for creating the PendingIntent.
errorCode | error code returned by `isGooglePlayServicesAvailable(Context)` call. If errorCode is `SUCCESS` then null is returned.
requestCode | The requestCode given when calling startActivityForResult.

#### public final String getErrorString (int errorCode)

Returns a human-readable string of the error code returned from isGooglePlayServicesAvailable(Context).

#### public static GoogleApiAvailability getInstance ()

Returns the singleton instance of GoogleApiAvailability.

#### public String getOpenSourceSoftwareLicenseInfo (Context context)

Returns the open source software license information for the Google Play services application, or null if Google Play services is not available on this device.

#### public int isGooglePlayServicesAvailable (Context context)

Verifies that Google Play services is installed and enabled on this device, and that the version installed on this device is no older than the one required by this client.

##### Returns

- status code indicating whether there was an error. Can be one of following in `ConnectionResult`: SUCCESS, SERVICE_MISSING, SERVICE_UPDATING, SERVICE_VERSION_UPDATE_REQUIRED, SERVICE_DISABLED, SERVICE_INVALID

#### public final boolean isUserResolvableError (int errorCode)

Determines whether an error can be resolved via user action. If true, proceed by calling `getErrorDialog(Activity, int, int)` and showing the dialog.

##### Parameters

errorCode | error code returned by `isGooglePlayServicesAvailable(Context)`, or returned to your application via `#onConnectionFailed(ConnectionResult)`

##### Returns

- true if the error is resolvable with `getErrorDialog(Activity, int, int)`

#### public Task<Void> makeGooglePlayServicesAvailable (Activity activity)

Attempts to make Google Play services available on this device. If Play Services is already available, the returned `Task` may complete immediately.

If it is necessary to display UI in order to complete this request (e.g. sending the user to the Google Play store) the passed `Activity` will be used to display this UI.

It is recommended to call this method from `onCreate(Bundle)`. If the passed `Activity` completes before the returned `Task` completes, the Task will fail with a `CancellationException`.

This method must be called from the main thread.

##### Returns

- A `Task`. If this Task completes without throwing an exception, Play Services is available on this device.

#### public boolean showErrorDialogFragment (Activity activity, int errorCode, int requestCode)

Displays a DialogFragment for an error code returned by `isGooglePlayServicesAvailable(Context)`.

##### Parameters

activity | parent activity for creating the dialog, also used for identifying language to display dialog in.
errorCode | error code returned by `isGooglePlayServicesAvailable(Context)` call. If errorCode is `SUCCESS` then this does nothing.
requestCode | The requestCode given when calling startActivityForResult.

##### Returns

- true if the dialog is shown, false otherwise

##### Throws

RuntimeException | if API level is below 11 and `activity` is not a `FragmentActivity`.

##### See Also

- `ErrorDialogFragment`
- `SupportErrorDialogFragment`

#### public boolean showErrorDialogFragment (Activity activity, int errorCode, int requestCode, DialogInterface.OnCancelListener cancelListener)

Displays a DialogFragment for an error code returned by `isGooglePlayServicesAvailable(Context)`.

##### Parameters

activity | parent activity for creating the dialog, also used for identifying language to display dialog in.
errorCode | error code returned by `isGooglePlayServicesAvailable(Context)` call. If errorCode is `SUCCESS` then this does nothing
requestCode | The requestCode given when calling startActivityForResult.
cancelListener | The `DialogInterface.OnCancelListener` to invoke if the dialog is canceled.

##### Returns

- true if the dialog is shown, false otherwise.

##### Throws

RuntimeException | if API level is below 11 and `activity` is not a `FragmentActivity`.

##### See Also

- `ErrorDialogFragment`
- `SupportErrorDialogFragment`

#### public void showErrorNotification (Context context, int errorCode)

Displays a notification for an error code returned from `isGooglePlayServicesAvailable(Context)`, if it is resolvable by the user.

This method is similar to `getErrorDialog(Activity, int, int)`, but is provided for background tasks that cannot or should not display dialogs.

##### Parameters

context | The calling context for displaying the notification.
errorCode | Error code returned by `isGooglePlayServicesAvailable(Context)`. For other values, including `SUCCESS`, no notification is shown.

#### public void showErrorNotification (Context context, ConnectionResult result)

Displays a notification for a connection failure, if it is resolvable by the user.

##### Parameters

context | The calling context used to display the notification.
result | The connection failure. If successful or the error is not resolvable by the user, no notification is shown.