2

アプリケーションがユーザーに、アプリケーションが GoogleAuthUtil.getToken() を介してユーザー データにアクセスすることに同意するよう求めるウィンドウを起動しようとしています。

ただし、UserRecoverableAuthException から起動されたアクティビティを確認できません。

検索しましたが、この問題を解決する役立つ投稿は見つかりませんでした。

誰にもアイデアはありますか?(「Shoot2!」が出力されますが、その後 LogCat では何も起こりません)。

  @Override
  public void onCreate(Bundle savedInstanceState) {

    super.onCreate(savedInstanceState);

    System.out.println("HERE!!!");
    System.out.println(CalendarScopes.CALENDAR);

    new AsyncTask<Void, Void, Void>() {

      @Override
      protected Void doInBackground(Void... params) {

        try {
          System.out.println("Hello2!");
          String token = GoogleAuthUtil.getToken(EventsActivity.this, "jdoe@gmail.com", "oauth2:" + CalendarScopes.CALENDAR);
          System.out.println("token");
          System.out.println("Hello3!");
        } catch (GooglePlayServicesAvailabilityException playEx) {
          System.out.println("Shoot1!");
          playEx.printStackTrace();
        } catch (UserRecoverableAuthException recoverableException) {
          System.out.println("Shoot2!");
          Intent recoveryIntent = recoverableException.getIntent();
          recoveryIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK).addFlags(Intent.FLAG_FROM_BACKGROUND);
          // Use the intent in a custom dialog or just startActivityForResult.
          startActivityForResult(recoveryIntent, 99);
        } catch (GoogleAuthException authEx) {
          System.out.println("Shoot3!");
          // This is likely unrecoverable.
          authEx.printStackTrace();
        } catch (IOException ioEx) {
          System.out.println("Shoot4!");
          ioEx.printStackTrace();
        }

        return null;

      }
}.execute();
4

1 に答える 1

0

AndroidManifest.xml のアクティビティに singleInstance を追加したため、Authorization インテントが起動されていないことがわかりました。

削除する

android:launchMode = "singleInstance"

この問題と、アクティビティ間の他のいくつかの奇妙な遷移効果が修正されました。

于 2013-07-11T13:32:39.960 に答える