要求額外範圍

,瞭解如何調查及移除這項存取權。

為提供最佳的使用者體驗,請在 最初登入的使用者如果應用程式的核心功能與 Google 服務,GoogleSignInOptions.DEFAULT_SIGN_IN 設定通常位於 登入帳戶

如果您的應用程式有可以使用 Google API 資料的功能,但這些功能並非 做為應用程式核心功能要求的一部分,因此,您必須在設計應用程式時, 即便沒有 API 資料,也能妥善處理。例如: 如果使用者尚未授予雲端硬碟權限,您可以隱藏最近儲存的檔案清單 資源存取權

建議您只要求存取 Google API 所需的其他範圍 當使用者執行需要存取特定 API 的動作時。適用對象 舉例來說,只有在發生以下情況時,您才能要求存取使用者的雲端硬碟: 使用者輕觸「儲存至雲端硬碟」因為這是第一個通用按鈕

只要採用這項技巧,就能避免新使用者不知從何著手,或是造成混淆 以及需要提供特定權限的原因

要求使用者動作所需的權限

使用者執行的操作需要範圍時,系統並未在 登入,請呼叫 GoogleSignIn.hasPermissions 檢查使用者是否已 授予必要的權限如果沒有,請呼叫 GoogleSignIn.requestPermissions 來啟動活動,從 內容。

舉例來說,如果使用者執行的動作需要存取雲端硬碟 應用程式儲存空間,請執行下列步驟:

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();
}

在活動的 onActivityResult 回呼中,您可以查看必要性 並成功取得權限,接著執行使用者動作。

@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();
        }
    }
}

您也可以將 GoogleSignInOptionsExtension 傳遞至 hasPermissionsrequestPermissions,進一步檢查並獲取一組權限 。