為提供最佳的使用者體驗,請在
最初登入的使用者如果應用程式的核心功能與
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
傳遞至 hasPermissions
和
requestPermissions
,進一步檢查並獲取一組權限
。