簡體   English   中英

com.google.android.gms.common.api.ApiException: 17: API: Drive.API_CONNECTIONLESS 在此設備上不可用

[英]com.google.android.gms.common.api.ApiException: 17: API: Drive.API_CONNECTIONLESS is not available on this device

這是故事。 大約三年前,我將 Google Drive Android SDK ( 8.1.0 ) 集成到我的應用程序 ( AnyCopy ) 中。 我按照教程進行了正確設置,包括添加憑據和 api 密鑰。 一切正常。 我可以毫無問題地備份和恢復我的數據。 即使在今天,如果我從 Google Play 下載它也可以正常工作。

最近我一直在嘗試重構 AnyCopy 並將最新的 Google Drive Android SDK(Google Play 服務版本號 12.0.1)集成到我的應用程序中,但遇到了一個奇怪的錯誤消息

java.util.concurrent.ExecutionException: com.google.android.gms.common.api.ApiException: 17: API: Drive.API_CONNECTIONLESS 在此設備上不可用。 在 com.google.android.gms.tasks.Tasks.zzc(來源不明) 在 com.google.android.gms.tasks.Tasks.await(來源不明)

但是,如果我使用不同的簽名密鑰在 Google 控制台上創建新憑據。 問題解決了。 我意識到問題源於憑證配置。 但是,我無法弄清楚如何解決它,因為它可能是 Google Drive SDK 向后兼容性錯誤。 還有其他人遇到過這個問題嗎? 任何建議他都會高度贊賞。

我有同樣的錯誤。 我創建了一個新項目並獲得了 google API 的憑據,但忘記啟用 Google Drive API。 轉到儀表板並啟用 google drive API 就可以了。 希望有幫助。

您使用的新 API 仍然具有舊版本的實例和文件夾。 您只需從 Android 切換到您的項目和外部庫即可進行檢查。 如果存在該 api 的舊版本,請嘗試 refractor 並清理項目並重建它。 希望它適合您的關注。 當然是向后兼容性問題。

在我的情況下發生的事情是,我設置的授權范圍與DriveClient對象支持的范圍不同,只有drive.filedrive.appfolder,如您在此處看到的:

注意:Google Drive Android API 目前僅支持 drive.file 和 drive.appfolder 授權范圍。 如果您的應用程序需要 Drive Android API 中尚不可用的其他權限或功能,您必須使用 Google APIs Java 客戶端。

就我而言,我試圖使用完整的驅動器訪問權限,但錯誤與連接類型並沒有真正相關。 我通過查看CommonStatusCodes 類找到了它。

為了解決這個問題,我只是刪除了所有其他范圍,只留下了drive.file 您可能需要,也可能不需要:D,需要撤銷訪問權限並從您的應用中注銷用戶,然后重新登錄並再次請求訪問他們的谷歌驅動器。

如果您使用的是 firebase,您的代碼看起來有點像這樣:

AuthUI.IdpConfig.GoogleBuilder()
                    .setScopes(Arrays.asList(Scopes.DRIVE_FILE))
                    .build()

但是,如果您只直接使用GoogleSignInClient,它看起來像這樣:

GoogleSignInOptions signInOptions =
            new GoogleSignInOptions.Builder(GoogleSignInOptions.DEFAULT_SIGN_IN)
                    .requestScopes(Drive.SCOPE_FILE)
                    .build();
GoogleSignIn.getClient(this, signInOptions)

如果您需要的不僅僅是訪問文件和應用程序文件夾,您將無法使用 DriveClient 類,並且根據他們的文檔,將需要Connecting and Authorizing with the Google APIs Java Client

我真的希望對你有所幫助,不幸的是,我已經失去了幾個小時才注意到這一點。

謝謝,

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM