Page Summary
-
The
GoogleSignInclass is an entry point for the Google Sign In API but is deprecated. -
It is recommended to use Credential Manager for authentication or Google Identity Services for authorization instead of this class.
-
Key functionalities include getting signed-in accounts, creating a
GoogleSignInClient, checking and requesting permissions for scopes and extensions, and retrieving the last signed-in account. -
Methods like
getAccountForExtension,getAccountForScopes,getClient,getLastSignedInAccount,getSignedInAccountFromIntent,hasPermissions, andrequestPermissionsare available in this class.
This class is deprecated.
Use Credential
Manager
for authentication or Google Identity
Services
for authorization.
Entry point for the Google Sign In API. See GoogleSignInClient
.
Public Method Summary
| static GoogleSignInAccount | |
| static GoogleSignInAccount | |
| static GoogleSignInClient | getClient
( Context
context, GoogleSignInOptions
options)
Create a new instance of
GoogleSignInClient
|
| static GoogleSignInClient | getClient
( Activity
activity, GoogleSignInOptions
options)
Create a new instance of
GoogleSignInClient
|
| static GoogleSignInAccount | |
| static Task< GoogleSignInAccount > | getSignedInAccountFromIntent
( Intent
data)
Returns a
GoogleSignInAccount
present in the result data for the associated
Activity started via GoogleSignInClient.getSignInIntent()
. |
| static boolean | hasPermissions
( GoogleSignInAccount
account, GoogleSignInOptionsExtension
extension)
Determines if the given account has been granted permission to all scopes
associated with the given extension.
|
| static boolean | hasPermissions
( GoogleSignInAccount
account, Scope...
scopes)
Determines if the given account has been granted permission to all given
scopes.
|
| static void | requestPermissions
( Activity
activity, int requestCode, GoogleSignInAccount
account, Scope...
scopes)
Requests a collection of permissions to be granted to the given account.
|
| static void | requestPermissions
( Activity
activity, int requestCode, GoogleSignInAccount
account, GoogleSignInOptionsExtension
extension)
Requests a collection of permissions associated with the given extension to be
granted to the given account.
|
| static void | requestPermissions
( Fragment
fragment, int requestCode, GoogleSignInAccount
account, GoogleSignInOptionsExtension
extension)
|
| static void | requestPermissions
( Fragment
fragment, int requestCode, GoogleSignInAccount
account, Scope...
scopes)
|
Inherited Method Summary
Public Methods
public static GoogleSignInAccount getAccountForExtension ( Context context, GoogleSignInOptionsExtension extension)
Gets a GoogleSignInAccount
object to use with other authenticated APIs. Please specify the additional
configurations required by the authenticated API, e.g. ERROR(/com.google.android.gms.fitness.FitnessOptions)
indicating
what data types you'd like to access.
public static GoogleSignInAccount getAccountForScopes ( Context context, Scope scope, Scope... scopes)
Gets a GoogleSignInAccount
object to use with other authenticated APIs. Please specify the scope(s) required by
the authenticated API.
public static GoogleSignInClient getClient ( Context context, GoogleSignInOptions options)
Create a new instance of GoogleSignInClient
Parameters
| context | A Context
used to provide information about the application's environment. See also |
|---|---|
| options |
public static GoogleSignInClient getClient ( Activity activity, GoogleSignInOptions options)
Create a new instance of GoogleSignInClient
Parameters
| activity | An Activity
that will be used to manage the lifecycle of the GoogleSignInClient. |
|---|---|
| options | A ERROR(/GoogleSignInOptions)
used to
configure the GoogleSignInClient. It is recommended to build out a
GoogleSignInOptions starting with new
GoogleSignInOptions.Builder(GoogleSignInOptions.DEFAULT_SIGN_IN)
},
configuring either ID token or Server Auth Code options if you have a server.
Later, in-context incrementally auth to additional scopes for other Google services
access. |
Returns
- A instance of
GoogleSignInClient
public static GoogleSignInAccount getLastSignedInAccount ( Context context)
Gets the last account that the user signed in with.
Returns
-
ERROR(/GoogleSignInAccount)from last known successful sign-in. If user has never signed in before or has signed out / revoked access,nullis returned.
public static Task< GoogleSignInAccount > getSignedInAccountFromIntent ( Intent data)
Returns a GoogleSignInAccount
present in the result data for the associated Activity started via GoogleSignInClient.getSignInIntent()
.
A sample usage:
try {
// As documented, we return a completed Task in this case and it's safe to directly call
// getResult(Class<ExceptionType>) here (without need to worry about IllegalStateException).
GoogleSignIn.getSignedInAccountFromIntent(intent).getResult(ApiException.class);
} catch (ApiException apiException) {
Log.wtf(TAG, "Unexpected error parsing sign-in result");
}
Parameters
Returns
- A completed
Taskcontaining aERROR(/GoogleSignInAccount)object.
public static boolean hasPermissions ( GoogleSignInAccount account, GoogleSignInOptionsExtension extension)
Determines if the given account has been granted permission to all scopes associated with the given extension.
See requestPermissions(Activity, int, GoogleSignInAccount, Scope)
for sample
code.
Parameters
| account | the account to be checked. |
|---|---|
| extension | the extension to be checked. |
Returns
-
trueif the given account has been granted permission to all scopes associated with the given extension.
public static boolean hasPermissions ( GoogleSignInAccount account, Scope... scopes)
Determines if the given account has been granted permission to all given scopes.
See requestPermissions(Activity, int, GoogleSignInAccount,
GoogleSignInOptionsExtension)
for sample code.
Parameters
| account | the account to be checked. |
|---|---|
| scopes | the collection of scopes to be checked. |
Returns
-
trueif the given account has been granted permission to all given scopes.
public static void requestPermissions ( Activity activity, int requestCode, GoogleSignInAccount account, Scope... scopes)
Requests a collection of permissions to be granted to the given account. If the
account does not have the requested permissions the user will be presented with a UI
for accepting them. Once the user has accepted or rejected a response will returned via Activity.onActivityResult(int, int, Intent)
.
A sample usage:
// Check for your incrementally authed features: if ( ! GoogleSignIn . hasPermissions ( GoogleSignIn . getLastSignedInAccount ( this ), Drive . SCOPE_APPFOLDER )) { requestPermission ( Drive . SCOPE_APPFOLDER , RC_REQUEST_DRIVE_AND_CONTINUE_FILE_CREATION ); } else { createDriveFile (); } void createDriveFile () { Drive . getDriveResourceClient ( this , GoogleSignIn . getLastSignedInAccount ( this )) . createFile ( appFolderRoot , changeSet , newContents ); ... } private void requestPermission ( Scope scope , String requestCode ) { GoogleSignIn . requestPermissions ( this , requestCode , GoogleSignIn . getLastSignedInAccount (), scope ); } // ... @ Override void onActivityResult ( int requestCode , int resultCode , Intent intent ) { if ( resultCode == Activity . RESULT_OK ) { if ( RC_REQUEST_DRIVE_AND_CONTINUE_FILE_CREATION == requestCode ) { createDriveFile (); } } }
Parameters
| activity | the target activity that will receive the response. |
|---|---|
| requestCode | code associated with the request. It will match the requestCode
associated with the response returned via Activity.onActivityResult(int, int, Intent)
. |
| account | the account for which the permissions will be requested. If null
the user may have the option to choose. |
| scopes | the extra collection of scopes to be requested. |
public static void requestPermissions ( Activity activity, int requestCode, GoogleSignInAccount account, GoogleSignInOptionsExtension extension)
Requests a collection of permissions associated with the given extension to be
granted to the given account. If the account does not have the requested permissions
the user will be presented with a UI for accepting them. Once the user has accepted or
rejected a response will returned via Activity.onActivityResult(int, int, Intent)
.
See also requestPermissions(Activity, int, GoogleSignInAccount, Scope)
A sample usage:
// Check for your incrementally authed features: FitnessOptions fitnessOptions = FitnessOptions . builder () . addDataType ( DataType . TYPE_STEP_COUNT_CUMULATIVE , FitnessOptions . ACCESS_READ ) . build (); if ( ! GoogleSignIn . hasPermissions ( GoogleSignIn . getLastSignedInAccount ( this ), fitnessOptions )) { GoogleSignIn . requestPermissions ( this , RC_REQUEST_STEP_COUNT_AND_CONTINUE_SUBSCRIPTION , GoogleSignIn . getLastSignedInAccount ( this ), fitnessOptions ); } else { startSubscription (); } void startSubscription () { Fitness . getRecordingClient ( this , GoogleSignIn . getLastSignedInAccount ()) . subscribe ( DataType . TYPE_STEP_COUNT_CUMULATIVE ); ... } @ Override void onActivityResult ( int requestCode , int resultCode , Intent intent ) { if ( resultCode == Activity . RESULT_OK ) { if ( RC_REQUEST_STEP_COUNT_AND_CONTINUE_SUBSCRIPTION == requestCode ) { startSubscription (); } } }
Parameters
| activity | the target activity that will receive the response. |
|---|---|
| requestCode | code associated with the request. It will match the requestCode
associated with the response returned via Activity.onActivityResult(int, int, Intent)
. |
| account | the account for which the permissions will be requested. If null
the user may have the option to choose. |
| extension | the extension associated with a set of permissions to be requested. |
public static void requestPermissions ( Fragment fragment, int requestCode, GoogleSignInAccount account, GoogleSignInOptionsExtension extension)
Parameters
| fragment | the fragment to launch permission resolution Intent from. |
|---|---|
| requestCode | |
| account | |
| extension |
public static void requestPermissions ( Fragment fragment, int requestCode, GoogleSignInAccount account, Scope... scopes)
Parameters
| fragment | the fragment to launch permission resolution Intent from. |
|---|---|
| requestCode | |
| account | |
| scopes |

