Richiesta di ambiti aggiuntivi

di Gemini Advanced.

Per una migliore esperienza utente, ti consigliamo di richiedere il minor numero possibile di ambiti quando che eseguono l'accesso iniziale agli utenti. Se la funzionalità di base dell'app non è legata a una servizio Google, la configurazione GoogleSignInOptions.DEFAULT_SIGN_IN è spesso tutto ciò che serve al momento dell'accesso.

Se la tua app include funzionalità che possono usare i dati delle API di Google, ma non come parte della funzionalità di base dell'app, dovresti progettarla per gestire agevolmente i casi in cui i dati delle API non sono accessibili. Ad esempio: potresti nascondere un elenco dei file salvati di recente se l'utente non ha concesso l'accesso a Drive l'accesso.

Devi richiedere gli ambiti aggiuntivi di cui hai bisogno solo per accedere alle API di Google Quando l'utente esegue un'azione che richiede l'accesso a una determinata API. Per Ad esempio, puoi richiedere l'autorizzazione ad accedere al Drive dell'utente solo quando l'utente tocca "Salva in Drive" per la prima volta.

Utilizzando questa tecnica, puoi evitare di sovraccaricare i nuovi utenti o creare confusione agli utenti il motivo per cui vengono loro richieste determinate autorizzazioni.

Richiesta delle autorizzazioni richieste dalle azioni dell'utente

Ogni volta che un utente esegue un'azione che richiede un ambito non richiesto in accedi, chiama GoogleSignIn.hasPermissions per verificare se l'utente ha già a cui sono state concesse le autorizzazioni richieste. In caso contrario, chiama GoogleSignIn.requestPermissions per avviare un'attività che richiede gli ambiti aggiuntivi richiesti utente.

Ad esempio, se un utente esegue un'azione che richiede l'accesso al proprio Drive spazio di archiviazione per le app, procedi nel seguente modo:

if (!GoogleSignIn.hasPermissions(
        GoogleSignIn.getLastSignedInAccount(getActivity()),
        Drive.SCOPE_APPFOLDER)) {
    GoogleSignIn.requestPermissions(
            MyExampleActivity.this,
            RC_REQUEST_PERMISSION_SUCCESS_CONTINUE_FILE_CREATION,
            GoogleSignIn.getLastSignedInAccount(getActivity()),
            Drive.SCOPE_APPFOLDER);
} else {
    saveToDriveAppFolder();
}

Nel callback onActivityResult relativo alle tue attività, puoi controllare se le richieste sono state acquisite correttamente e, in questo caso, eseguire l'azione dell'utente.

@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
    super.onActivityResult(requestCode, resultCode, data);
    if (resultCode == Activity.RESULT_OK) {
        if (RC_REQUEST_PERMISSION_SUCCESS_CONTINUE_FILE_CREATION == requestCode) {
            saveToDriveAppFolder();
        }
    }
}

Puoi anche passare GoogleSignInOptionsExtension a hasPermissions e requestPermissions per controllare e acquisire un insieme di autorizzazioni maggiormente in modo pratico.