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

ben*_*ali 5 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
Run Code Online (Sandbox Code Playgroud)

我在Manifest中做错了什么,或者我应该在Api控制台中改变一些东西?

在stackoverflow下只找到一个线程,没有任何答案 谷歌驱动器身份验证异常 - 需要权限?(V2)

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

jai*_*rik 17

您应该捕获UserRecoverableAuthException并在catch块中,Intent通过调用从异常中恢复UserRecoverableAuthException#getIntent().启动该意图以将用户带到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);
}
Run Code Online (Sandbox Code Playgroud)