如果我将代码合并到其他项目,Android Drive API : getting Sys. err UserRecoverableAuthIOException

标签 android android-manifest google-drive-api

我按照 https://developers.google.com/drive/quickstart-android 下的所有步骤收听 有用! 但是如果我要将给定的代码/包合并到另一个项目,我会得到

 W/System.err(793): com.google.android.gms.auth.UserRecoverableAuthException: NeedPermission
 W/System.err(793): at com.google.android.gms.auth.GoogleAuthUtil.getToken(Unknown Source)
 W/System.err(793): at com.google.android.gms.auth.GoogleAuthUtil.getToken(Unknown Source)
 W/System.err(793): at com.drive.main.MainActivity$GetToken.doInBackground(MainActivity.java:139)
 W/System.err(793): at com.drive.main.MainActivity$GetToken.doInBackground(MainActivity.java:1)
 W/System.err(793): at java.util.concurrent.FutureTask.run(FutureTask.java:234)
 W/System.err(793): at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:230)
 W/System.err(793): at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1080)
 W/System.err(793): at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:573)
 W/System.err(793): at java.lang.Thread.run(Thread.java:856)
 I/System.out(793): An error occurred: com.google.api.client.googleapis.extensions.android.gms.auth.UserRecoverableAuthIOException

我是在 list 中做错了什么,还是应该在 Api 控制台中更改某些内容?

在stackoverflow下只找到一个线程没有任何答案 Google Drive Authentication Exception - Needs Permission? (v2)

任何想法都会有所帮助。谢谢。

最佳答案

您应该捕获 UserRecoverableAuthException 并在 catch block 中,通过调用 UserRecoverableAuthException#getIntent() 从异常中恢复 Intent。启动该 Intent ,将用户带到您应用的 OAuth2 权限页面。

示例代码-

try {
    Drive service = Drive.Builder(AndroidHttp.newCompatibleTransport(), new GsonFactory(), credential)
        .build();
    // Do whatever you want with the Drive service
} catch (UserRecoverableAuthIOException e) {
    startActivityForResult(e.getIntent(), REQUEST_AUTHORIZATION);
}

关于如果我将代码合并到其他项目,Android Drive API : getting Sys. err UserRecoverableAuthIOException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15142108/

相关文章:

android - 在NDK w/gradle上编译两个项目,其中一个依赖另一个的binary

java - 当应用程序被杀死时,Android 服务停止录制音频

xamarin.android - 具有特定权限的 Monodroid 失败 [INSTALL_PARSE_FAILED_MANIFEST_MALFORMED]

git - 是否可以从 Google 云端硬盘管理 GIT 非裸仓库?

java - 数组 [i] = java.lang.IndexOutOfBoundsException : Invalid array range 10 to 10

java - 查找并替换字符串中的括号

android - Play 商店显然忽略了我的支持屏幕设置

android - 类似于 API 8 中的 FLAG_ACTIVITY_CLEAR_TASK 的标志

ios - 类型 'GTLQueryDrive' 没有成员 'queryForFilesInsertWithObject'

google-apps-script - 从 DocsList 迁移到 DriveApp?