UserRecoverableAuthException: NeedPermission

后端 未结 6 641
醉酒成梦
醉酒成梦 2020-12-01 09:16

I tried to follow tutorial: https://developers.google.com/android/guides/http-auth.

Code:

token = GoogleAuthUtil.getToken(getApplicationContext(),
           


        
6条回答
  •  时光取名叫无心
    2020-12-01 09:46

    the method getAndUseAuthTokenBlocking() of the official GoogleAuthUtil tutorial explains pretty well how to handle the exception:

    // Example of how to use the GoogleAuthUtil in a blocking, non-main thread context
       void getAndUseAuthTokenBlocking() {
           try {
              // Retrieve a token for the given account and scope. It will always return either
              // a non-empty String or throw an exception.
              final String token = GoogleAuthUtil.getToken(Context, String, String)(context, email, scope);
              // Do work with token.
              ...
              if (server indicates token is invalid) {
                  // invalidate the token that we found is bad so that GoogleAuthUtil won't
                  // return it next time (it may have cached it)
                  GoogleAuthUtil.invalidateToken(Context, String)(context, token);
                  // consider retrying getAndUseTokenBlocking() once more
                  return;
              }
              return;
           } catch (GooglePlayServicesAvailabilityException playEx) {
             Dialog alert = GooglePlayServicesUtil.getErrorDialog(
                 playEx.getConnectionStatusCode(),
                 this,
                 MY_ACTIVITYS_AUTH_REQUEST_CODE);
             ...
           } catch (UserRecoverableAuthException userAuthEx) {
              // Start the user recoverable action using the intent returned by
              // getIntent()
              myActivity.startActivityForResult(
                      userAuthEx.getIntent(),
                      MY_ACTIVITYS_AUTH_REQUEST_CODE);
              return;
           } catch (IOException transientEx) {
              // network or server error, the call is expected to succeed if you try again later.
              // Don't attempt to call again immediately - the request is likely to
              // fail, you'll hit quotas or back-off.
              ...
              return;
           } catch (GoogleAuthException authEx) {
              // Failure. The call is not expected to ever succeed so it should not be
              // retried.
              ...
              return;
           }
       }

提交回复
热议问题