AI-generated Key Takeaways
- 
          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 | 
                  
                  getAccountForExtension(Context
                  context, 
                  GoogleSignInOptionsExtension extension)
                   
                    Gets a  
                    GoogleSignInAccountobject to use with other authenticated APIs. | 
| static GoogleSignInAccount | 
                  
                  getAccountForScopes(Context
                  context, Scope
                  scope, Scope...
                  scopes)
                   
                    Gets a  
                    GoogleSignInAccountobject to use with other authenticated APIs. | 
| static GoogleSignInClient | |
| static GoogleSignInClient | 
                  
                  getClient(Activity
                  activity, 
                  GoogleSignInOptions options)
                   
                    Create a new instance of  
                    GoogleSignInClient | 
| static GoogleSignInAccount | |
| static Task<GoogleSignInAccount> | 
                  
                  getSignedInAccountFromIntent(Intent data)
                   
                    Returns a  
                    GoogleSignInAccountpresent 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 Contextused 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 Activitythat 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 withnew
                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
| data | the Intentreturned via
                Activity.onActivityResult(int, int, Intent)when sign in completed. | 
|---|
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 requestCodeassociated with the response returned via
                Activity.onActivityResult(int, int, Intent). | 
| account | the account for which the permissions will be requested. If nullthe 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 requestCodeassociated with the response returned via
                Activity.onActivityResult(int, int, Intent). | 
| account | the account for which the permissions will be requested. If nullthe 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 |