GoogleApiAvailability

public class GoogleApiAvailability 

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

Summary

Constants

static final @ NonNull String
GOOGLE_PLAY_SERVICES_PACKAGE = "com.google.android.gms"

Package name for Google Play services.

static final int

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

Public methods

@ NonNull Task < Void >
checkApiAvailability ( GoogleApi < Object > api, GoogleApi[] apis)

Checks the availability of the specified APIs.

@ NonNull Task < Void >
checkApiAvailability ( HasApiKey < Object > api, HasApiKey[] apis)

Checks the availability of the specified APIs.

@ Nullable Dialog
getErrorDialog ( Activity  activity, int errorCode, int requestCode)

Returns a dialog to address the provided errorCode .

@ Nullable Dialog
getErrorDialog ( Fragment  fragment, int errorCode, int requestCode)

Returns a dialog to address the provided errorCode .

@ Nullable Dialog
getErrorDialog (
Activity  activity,
    int errorCode,
    int requestCode,
    @ Nullable DialogInterface.OnCancelListener  cancelListener
)

Returns a dialog to address the provided errorCode .

@ Nullable Dialog
getErrorDialog (
Fragment  fragment,
    int errorCode,
    int requestCode,
    @ Nullable DialogInterface.OnCancelListener  cancelListener
)

Returns a dialog to address the provided errorCode .

@ Nullable PendingIntent

Returns a PendingIntent to address the provided connection failure.

@ Nullable PendingIntent
getErrorResolutionPendingIntent (
Context  context,
    int errorCode,
    int requestCode
)

Returns a PendingIntent to address the provided errorCode.

final @ NonNull String
getErrorString (int errorCode)

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

static @ NonNull GoogleApiAvailability

Returns the singleton instance of GoogleApiAvailability.

int

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.

@ NonNull Task < Void >

Attempts to make Google Play services available on this device.

void
@ TargetApi (value = Build.VERSION_CODES.O)
setDefaultNotificationChannelId (
    @ NonNull Context  context,
    @ NonNull String  notificationChannelId
)

Overrides the default notification channel for Google Play services availability notifications.

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

Displays a DialogFragment for an error code returned by isGooglePlayServicesAvailable .

boolean
showErrorDialogFragment (
Activity  activity,
    int errorCode,
ActivityResultLauncher < IntentSenderRequest > activityResultLauncher,
    @ Nullable DialogInterface.OnCancelListener  cancelListener
)

Displays a DialogFragment for an errorCode returned by isGooglePlayServicesAvailable .

boolean
showErrorDialogFragment (
Activity  activity,
    int errorCode,
    int requestCode,
    @ Nullable DialogInterface.OnCancelListener  cancelListener
)

Displays a DialogFragment for an error code returned by isGooglePlayServicesAvailable .

void
showErrorNotification ( Context  context, int errorCode)

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

void

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

Constants

GOOGLE_PLAY_SERVICES_PACKAGE

public static final @ NonNull 
 String 
 GOOGLE_PLAY_SERVICES_PACKAGE 
= "com.google.android.gms"

Package name for Google Play services.

GOOGLE_PLAY_SERVICES_VERSION_CODE

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

checkApiAvailability

public @ NonNull 
 Task 
< Void 
 checkApiAvailability 
( GoogleApi 
< Object 
> api, GoogleApi[] apis)

Checks the availability of the specified APIs.

If at least one of the APIs is unavailable, the task will fail with a , which can be queried for individual API availability.

checkApiAvailability

public @ NonNull 
 Task 
< Void 
 checkApiAvailability 
( HasApiKey 
< Object 
> api, HasApiKey[] apis)

Checks the availability of the specified APIs.

If at least one of the APIs is unavailable, the task will fail with a , which can be queried for individual API availability.

getErrorDialog

public @ Nullable 
 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. This method follows the startActivityForResult and onActivityResult API pattern. Consider migrating to showErrorDialogFragment as the androidx.activity.result.contract.ActivityResultContracts API is the recommended approach.

Parameters
Activity  activity

parent activity for creating the dialog, also used for identifying language to display dialog in.

int errorCode

error code returned by isGooglePlayServicesAvailable call. If errorCode is SUCCESS then null is returned.

int requestCode

The number given when calling startActivityForResult .

getErrorDialog

public @ Nullable 
 Dialog 
 getErrorDialog 
( Fragment 
 fragment, 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. This method follows the startActivityForResult and onActivityResult API pattern. Consider migrating to showErrorDialogFragment as the androidx.activity.result.contract.ActivityResultContracts API is the recommended approach.

Parameters
Fragment  fragment

parent fragment for creating the dialog, also used for identifying language to display dialog in.

int errorCode

error code returned by isGooglePlayServicesAvailable call. If errorCode is SUCCESS then null is returned.

int requestCode

The number given when calling startActivityForResult .

getErrorDialog

public @ Nullable 
 Dialog 
 getErrorDialog 
(
Activity  activity,
    int errorCode,
    int requestCode,
    @ Nullable 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. This method follows the startActivityForResult and onActivityResult API pattern. Consider migrating to showErrorDialogFragment as the androidx.activity.result.contract.ActivityResultContracts API is the recommended approach.

Parameters
Activity  activity

parent activity for creating the dialog, also used for identifying language to display dialog in.

int errorCode

error code returned by isGooglePlayServicesAvailable call. If errorCode is SUCCESS then null is returned.

int requestCode

The number given when calling startActivityForResult .

@ Nullable DialogInterface.OnCancelListener  cancelListener

The android.content.DialogInterface.OnCancelListener to invoke if the dialog is canceled.

getErrorDialog

public @ Nullable 
 Dialog 
 getErrorDialog 
(
Fragment  fragment,
    int errorCode,
    int requestCode,
    @ Nullable 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. This method follows the startActivityForResult and onActivityResult API pattern. Consider migrating to showErrorDialogFragment as the androidx.activity.result.contract.ActivityResultContracts API is the recommended approach.

Parameters
Fragment  fragment

parent fragment for creating the dialog, also used for identifying language to display dialog in.

int errorCode

error code returned by isGooglePlayServicesAvailable call. If errorCode is SUCCESS then null is returned.

int requestCode

The number given when calling startActivityForResult .

@ Nullable DialogInterface.OnCancelListener  cancelListener

The android.content.DialogInterface.OnCancelListener to invoke if the dialog is canceled.

getErrorResolutionPendingIntent

public @ Nullable 
 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  context

parent context for creating the PendingIntent.

ConnectionResult  result

the connection failure. If successful or the error is not resolvable by the user, null is returned.

getErrorResolutionPendingIntent

public @ Nullable 
 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  context

parent context for creating the PendingIntent.

int errorCode

error code returned by isGooglePlayServicesAvailable call. If errorCode is SUCCESS then null is returned.

int requestCode

The requestCode given when calling startActivityForResult.

getErrorString

public final @ NonNull 
 String 
 getErrorString 
(int errorCode)

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

getInstance

public static @ NonNull 
 GoogleApiAvailability 
 getInstance 
()

Returns the singleton instance of GoogleApiAvailability.

isGooglePlayServicesAvailable

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
int

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

isUserResolvableError

public final boolean  isUserResolvableError 
(int errorCode)

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

Parameters
int errorCode

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

Returns
boolean

true if the error is resolvable with getErrorDialog

makeGooglePlayServicesAvailable

@ MainThread 

public @ NonNull 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 . If the passed Activity completes before the returned Task completes, the Task will fail with a java.util.concurrent.CancellationException .

This method must be called from the main thread.

Returns
@ NonNull Task < Void >

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

setDefaultNotificationChannelId

@ TargetApi 
(value = Build.VERSION_CODES.O)
public void  setDefaultNotificationChannelId (
    @ NonNull Context  context,
    @ NonNull String  notificationChannelId
)

Overrides the default notification channel for Google Play services availability notifications.

It is required to register a NotificationChannel with the notificationChannelId in NotificationManager before calling this method. If the is not registered AND the platform is at least Android O, then a will be thrown.

Parameters
@ NonNull Context  context

The calling context for setting the notification channel.

@ NonNull String  notificationChannelId

The notification channel for Google Play services availability notifications

showErrorDialogFragment

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

Displays a DialogFragment for an error code returned by isGooglePlayServicesAvailable . This method follows the startActivityForResult and onActivityResult API pattern. Consider migrating to showErrorDialogFragment as the androidx.activity.result.contract.ActivityResultContracts API is the recommended approach.

Parameters
Activity  activity

parent activity for creating the dialog, also used for identifying language to display dialog in.

int errorCode

error code returned by isGooglePlayServicesAvailable call. If errorCode is SUCCESS then this does nothing.

int requestCode

The number given when calling startActivityForResult .

Returns
boolean

true if the dialog is shown, false otherwise

showErrorDialogFragment

public boolean  showErrorDialogFragment 
(
Activity  activity,
    int errorCode,
ActivityResultLauncher < IntentSenderRequest > activityResultLauncher,
    @ Nullable DialogInterface.OnCancelListener  cancelListener
)

Displays a DialogFragment for an errorCode returned by isGooglePlayServicesAvailable .

Parameters
Activity  activity

parent activity for creating the dialog, also used for identifying language to display dialog in.

int errorCode

error code returned by isGooglePlayServicesAvailable call. If errorCode is SUCCESS then this does nothing.

ActivityResultLauncher < IntentSenderRequest > activityResultLauncher

The androidx.activity.result.ActivityResultLauncher to invoke if the user opts to attempt to remediate the error described by the dialog.

@ Nullable DialogInterface.OnCancelListener  cancelListener

The android.content.DialogInterface.OnCancelListener to invoke if the dialog is canceled.

Returns
boolean

true if the dialog is shown, false otherwise.

showErrorDialogFragment

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

Displays a DialogFragment for an error code returned by isGooglePlayServicesAvailable . This method follows the startActivityForResult and onActivityResult API pattern. Consider migrating to showErrorDialogFragment as the androidx.activity.result.contract.ActivityResultContracts API is the recommended approach.

Parameters
Activity  activity

parent activity for creating the dialog, also used for identifying language to display dialog in.

int errorCode

error code returned by isGooglePlayServicesAvailable call. If errorCode is SUCCESS then this does nothing

int requestCode

The number given when calling startActivityForResult .

@ Nullable DialogInterface.OnCancelListener  cancelListener

The android.content.DialogInterface.OnCancelListener to invoke if the dialog is canceled.

Returns
boolean

true if the dialog is shown, false otherwise.

showErrorNotification

public void  showErrorNotification 
( Context 
 context, int errorCode)

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

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

Parameters
Context  context

The calling context for displaying the notification.

int errorCode

Error code returned by isGooglePlayServicesAvailable . For other values, including SUCCESS , no notification is shown.

showErrorNotification

public void  showErrorNotification 
( Context 
 context,  ConnectionResult 
 result)

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

Parameters
Context  context

The calling context used to display the notification.

ConnectionResult  result

The connection failure. If successful or the error is not resolvable by the user, no notification is shown.

Create a Mobile Website
View Site in Mobile | Classic
Share by: