GoogleAuthUtil provides static utility methods to,
- Acquire ClientLogin, OAuth2, ID, or offline access tokens for Google accounts.
- Invalidate ClientLogin or OAuth2 tokens.
See Authorizing with Google for REST APIs for details.
Constant Summary
int | CHANGE_TYPE_ACCOUNT_ADDED | Change types that can be represented in an AccountChangeEvent . |
int | CHANGE_TYPE_ACCOUNT_REMOVED | |
int | CHANGE_TYPE_ACCOUNT_RENAMED_FROM | A rename event that will contain extra data indicating the original account name. |
int | CHANGE_TYPE_ACCOUNT_RENAMED_TO | A rename event that will contain extra data indicating the new account name. |
String | GOOGLE_ACCOUNT_TYPE | Google Account type string. |
String | KEY_REQUEST_ACTIONS | This constant was deprecated. MomentsApi is no longer supported by Google+. |
String | KEY_REQUEST_VISIBLE_ACTIVITIES | See KEY_REQUEST_ACTIONS . |
String | KEY_SUPPRESS_PROGRESS_SCREEN | Adding KEY_SUPPRESS_PROGRESS will suppress the progress screen shown when getting a token
when added as a boolean true option while calling
getToken(Context, String, String, Bundle) . |
String | WORK_ACCOUNT_TYPE | Android for Work Account type string. |
Public Method Summary
static void |
clearToken(Context context, String token)
Clear the specified token in local cache with respect to the
Context . |
static List<AccountChangeEvent> |
getAccountChangeEvents(Context context, int eventIndex, String accountName)
Gets a list of events for the given account.
|
static String | |
static String | |
static String | |
static String | |
static String |
getToken(Context context, String accountName, String scope)
This method was deprecated.
Use
getToken(Context, Account, String) instead.
|
static String |
getTokenWithNotification(Context context, String accountName, String scope, Bundle extras, String authority, Bundle syncBundle)
This method was deprecated.
Use
getTokenWithNotification(Context, Account, String, Bundle, String, Bundle)
instead.
|
static String | |
static String |
getTokenWithNotification(Context context, String accountName, String scope, Bundle extras, Intent callback)
This method was deprecated.
Use
getTokenWithNotification(Context, Account, String, Bundle, Intent)
instead.
|
static String | |
static String |
getTokenWithNotification(Context context, String accountName, String scope, Bundle extras)
This method was deprecated.
Use
getTokenWithNotification(Context, Account, String, Bundle) instead.
|
static String | |
static void |
invalidateToken(Context context, String token)
This method was deprecated.
Deprecated because calling this function requires permissions MANAGE_ACCOUNTS and
USE_CREDENTIALS. Please use
clearToken(Context, String) instead.
|
static Bundle |
Inherited Method Summary
Constants
public static final int CHANGE_TYPE_ACCOUNT_ADDED
Change types that can be represented in an AccountChangeEvent
.
public static final int CHANGE_TYPE_ACCOUNT_REMOVED
public static final int CHANGE_TYPE_ACCOUNT_RENAMED_FROM
A rename event that will contain extra data indicating the original account name.
public static final int CHANGE_TYPE_ACCOUNT_RENAMED_TO
A rename event that will contain extra data indicating the new account name.
public static final String GOOGLE_ACCOUNT_TYPE
Google Account type string. Used for various calls to AccountManager
.
public static final String KEY_REQUEST_ACTIONS
This constant was deprecated.
MomentsApi is no longer supported by Google+.
Legacy G+ MomentsApi related request key, which is no longer supported.
public static final String KEY_REQUEST_VISIBLE_ACTIVITIES
See KEY_REQUEST_ACTIONS
.
public static final String KEY_SUPPRESS_PROGRESS_SCREEN
Adding KEY_SUPPRESS_PROGRESS will suppress the progress screen shown when getting a token
when added as a boolean true
option while calling
getToken(Context, String, String, Bundle)
. This is useful for apps that provide
their own splash screens on initialization.
public static final String WORK_ACCOUNT_TYPE
Android for Work Account type string. Used for various calls to AccountManager
.
Public Methods
public static void clearToken (Context context, String token)
Clear the specified token in local cache with respect to the Context
. Note that the
context must be the same as that used to initialize the token in a previous call to
getToken(Context, String, String)
or
getToken(Context, String, String, Bundle)
.
Parameters
context | Context of the token. |
---|---|
token | The token to clear. |
public static List<AccountChangeEvent> getAccountChangeEvents (Context context, int eventIndex, String accountName)
Gets a list of events for the given account. The result is in reverse chronological order.
Parameters
eventIndex | An event index to restrict results by. If 0 then all events will
be fetched. Otherwise, events greater than this index will be fetched. Callers can
store the last event index seen and use this field to limit results to only events
more recent than the ones seen prior. |
---|---|
accountName | The account name to restrict the event list to. |
Throws
GoogleAuthException | |
---|---|
IOException |
public static String getAccountId (Context ctx, String accountName)
Gets a stable account id for the given account name. In the event of a missing id, user
intervention may be required. In such cases, a UserRecoverableAuthException
will be
thrown. To initiate the user recovery workflow, clients must start the Intent
returned by getIntent()
for result. Upon successfully
returning a client should invoke this method again to get an id.
Throws
GooglePlayServicesAvailabilityException | containing the appropriate connection status error code. |
---|---|
UserRecoverableAuthException | wrapping an Intent for initiating user intervention.
The wrapped intent must be called with
startActivityForResult(Intent, int) . |
GoogleAuthException | signaling a potentially unrecoverable authentication error. |
IOException | signaling a potentially transient error. |
IllegalStateException | if the method is invoked in the main event thread. |
public static String getToken (Context context, Account account, String scope, Bundle extras)
Gets a token to be consumed by Google REST APIs.
This method requires substantial network IO thus should be run off the UI thread.
Be sure to handle the UserRecoverableAuthException
exception, as it is normal
behavior that user interaction is required.
See Authorizing with Google for REST APIs for details.
Note that to authenticate with a backend server, you should use
GoogleSignInAccount.getIdToken()
or GoogleSignInAccount.getServerAuthCode()
.
See
Authenticating with a backend server using Google Sign-In for details.
Parameters
context | The Context of the caller. |
---|---|
account | The user account that the token will be associated with. |
scope | A String representing the authentication scope, prefixed with "oauth2:".
To specify multiple scopes, separate them with a space (for example,
"oauth2:scope1 scope2 scope3"). |
extras | A Bundle that contains additional information.
For example, clients that have their own splash screens can suppress
the progress dialog provided by Google Play services by setting
KEY_SUPPRESS_PROGRESS_SCREEN to true in the Bundle . |
Returns
- A
String
that contains a valid token.
Throws
UserRecoverableAuthException | Signaling that a user action is required (to provide
consent, enter a password, etc.). To initiate the user action, clients must start
the Intent returned by getIntent() .
Upon successfully returning a client should invoke this method again to get a token. |
---|---|
IOException | Signaling a transient error (typically network related). It is left to clients to implement a backoff/abandonment strategy appropriate to their latency requirements. |
GooglePlayServicesAvailabilityException | Signaling that GooglePlayServices is not available. |
GoogleAuthException | Signaling an unrecoverable authentication error. These errors will typically result from client errors (e.g. providing an invalid scope). |
IllegalStateException | If the method is invoked in the main event thread. |
public static String getToken (Context context, String accountName, String scope, Bundle extras)
public static String getToken (Context context, String accountName, String scope)
public static String getTokenWithNotification (Context context, String accountName, String scope, Bundle extras, String authority, Bundle syncBundle)
This method was deprecated.
Use
getTokenWithNotification(Context, Account, String, Bundle, String, Bundle)
instead.
public static String getTokenWithNotification (Context context, Account account, String scope, Bundle extras)
Authenticates the user and returns a valid Google authentication token, or throws an
Exception
if there was an error while getting the token.
This method is specifically provided for background tasks. In the event of an error that needs user intervention, this method takes care of pushing relevant notification.
The exception thrown depends upon the underlying error and support for recovery.
UserRecoverableNotifiedException
will be thrown if the error can be resolved by user
intervention and a notification has already been posted to address it. IOException
s
will be thrown if the underlying error might be solved by some intelligent retry strategy.
Alternatively, GoogleAuthException
s represent a broad class of Exception
s
that cannot be recovered programmatically.
See Authorizing with Google for REST APIs for details.
Parameters
context | Context associated with the desired token. |
---|---|
account | Authenticating user account. |
scope | String representing the authentication scope. To specify multiple scopes, separate them with a space (for example, "oauth2:scope1 scope2 scope3"). |
extras | Bundle containing additional information that may be relevant to the authentication scope. |
Returns
- String containing a valid token.
Throws
UserRecoverableNotifiedException | if a user addressable error occurred and a notification was pushed. |
---|---|
GoogleAuthException | signaling a potentially unrecoverable authentication error. |
IOException | signaling a potentially transient error. |
IllegalStateException | if the method is invoked in the main event thread. |
public static String getTokenWithNotification (Context context, String accountName, String scope, Bundle extras, Intent callback)
This method was deprecated.
Use getTokenWithNotification(Context, Account, String, Bundle, Intent)
instead.
public static String getTokenWithNotification (Context context, Account account, String scope, Bundle extras, String authority, Bundle syncBundle)
Authenticates the user and returns a valid Google authentication token, or throws an
Exception
if there was an error while getting the token.
This method is specifically provided for sync adaptors. In the event of an error that needs user intervention, this method takes care of pushing relevant notification. After the user addresses the notification, a sync request will be kicked off using the given params. If the user cancels then the sync is not fired.
The exception thrown depends upon the underlying error and support for recovery.
UserRecoverableNotifiedException
will be thrown if the error can be resolved by user
intervention and a notification has already been posted to address it. IOException
s
will be thrown if the underlying error might be solved by some intelligent retry strategy.
Alternatively, GoogleAuthException
s represent a broad class of Exception
s
that cannot be recovered programmatically.
See Authorizing with Google for REST APIs for details.
Parameters
context | Context associated with the desired token. |
---|---|
account | Authenticating user account. |
scope | String representing the authentication scope. To specify multiple scopes, separate them with a space (for example, "oauth2:scope1 scope2 scope3"). |
extras | Bundle containing additional information that may be relevant to the authentication scope. |
authority | Authority for firing a sync request. Must not be empty or null. |
syncBundle | extras for firing a sync request. This bundle must pass ContentResolver.validateSyncExtrasBundle(). If no extras are needed can a null value can be passed. |
Returns
- String containing a valid token.
Throws
UserRecoverableNotifiedException | if a user addressable error occurred and a notification was pushed. |
---|---|
GoogleAuthException | signaling a potentially unrecoverable authentication error. |
IOException | signaling a potentially transient error. |
IllegalStateException | if the method is invoked in the main event thread. |
public static String getTokenWithNotification (Context context, String accountName, String scope, Bundle extras)
public static String getTokenWithNotification (Context context, Account account, String scope, Bundle extras, Intent callback)
Authenticates the user and returns a valid Google authentication token, or throws an
Exception
if there was an error while getting the token.
This method is specifically provided for background tasks. In the event of an error that needs user intervention, this method takes care of pushing relevant notification. After the user addresses the notification, the callback is broadcasted. If the user cancels then the callback is not fired.
The exception thrown depends upon the underlying error and support for recovery.
UserRecoverableNotifiedException
will be thrown if the error can be resolved by user
intervention and a notification has already been posted to address it. IOException
s
will be thrown if the underlying error might be solved by some intelligent retry strategy.
Alternatively, GoogleAuthException
s represent a broad class of Exception
s
that cannot be recovered programmatically.
See Authorizing with Google for REST APIs for details.
Parameters
context | Context associated with the desired token. |
---|---|
account | Authenticating user account. |
scope | String representing the authentication scope. To specify multiple scopes, separate them with a space (for example, "oauth2:scope1 scope2 scope3"). |
extras | Bundle containing additional information that may be relevant to the authentication scope. |
callback | A broadcast intent with a valid receiver that has been exported for other apps to send broadcasts to it. This intent must be serializable using toUri(Intent.URI_INTENT_SCHEME) and Intent.parseUri(intentUri, Intent.URI_INTENT_SCHEME). Cannot be null. |
Returns
- String containing a valid token.
Throws
UserRecoverableNotifiedException | if a user addressable error occurred and a notification was pushed. |
---|---|
GoogleAuthException | signaling a potentially unrecoverable authentication error. |
IOException | signaling a potentially transient error. |
IllegalStateException | if the method is invoked in the main event thread. |
public static void invalidateToken (Context context, String token)
This method was deprecated.
Deprecated because calling this function requires permissions MANAGE_ACCOUNTS and
USE_CREDENTIALS. Please use clearToken(Context, String)
instead.
public static Bundle removeAccount (Context context, Account account)
Removes an account from the AccountManager.
Like removeAccount(Account, AccountManagerCallback, Handler)
but where
the permission checks are not enforced for Google applications, device owner or profile
owner. It is also a heavily stripped down version of the original method.
This method is NOT safe to call from UI thread. It will fail and throw exceptions.
See DevicePolicyManager
for definition of device owner and profile owner.
Parameters
context | Context of the caller. |
---|---|
account | The account to remove. |
Returns
- See
removeAccount(Account, AccountManagerCallback, Handler)
for more details.
Throws
GoogleAuthException | |
---|---|
IOException |