2016-10-18 12 views
0

私は現在、hereと記載されている単純なDropbox Gallery Appに取り組んでいます。ログイン後すぐにDropboxコールを使用

ボタンをクリックすると、使用するDropboxアカウントを選択する必要があります。 Dropboxを1つ選択したときに、一時的にロードされ、元の画面に戻ります。ここで、元々はDropbox-Buttonが押されました。

ボタンをもう一度クリックすると、希望通りのギャラリーが表示されます。 これで余分なクリックを取り除きたいと思っています - ユーザーがDropboxボタンをクリックして、短時間(ログイン時間?)した後、ユーザーは要求された画像ギャラリーを見ることができます。

次のクラスは、認証のために使用されているものであると私はそれのための「するonSuccess」の機能のいくつかの種類を実装することができますかわからない:

public class Auth { 

    public static void startOAuth2Authentication(Context context, String appKey) { 

     if (!AuthActivity.checkAppBeforeAuth(context, appKey, true /*alertUser*/)) { 
      return; 
     } 

     // Start Dropbox auth activity. 
     String apiType = "1"; 
     String webHost = "www.dropbox.com"; 
     Intent intent = AuthActivity.makeIntent(context, appKey, webHost, apiType); 
     if (!(context instanceof Activity)) { 
      // If starting the intent outside of an Activity, must include 
      // this. See startActivity(). Otherwise, we prefer to stay in 
      // the same task. 
      intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); 
     } 
     context.startActivity(intent); 
    } 

    public static String getOAuth2Token() { 
     Intent data = AuthActivity.result; 

     if (data == null) { 
      return null; 
     } 

     String token = data.getStringExtra(AuthActivity.EXTRA_ACCESS_TOKEN); 
     String secret = data.getStringExtra(AuthActivity.EXTRA_ACCESS_SECRET); 
     String uid = data.getStringExtra(AuthActivity.EXTRA_UID); 

     if (token != null && !token.equals("") && 
       secret != null && !secret.equals("") && 
       uid != null && !uid.equals("")) { 
      return secret; 
     } 

     return null; 
    } 
} 

は、事前にありがとうございます。ここDropbox API v2 Java SDK Android example appに示すように

答えて

0

あなたは、onResumeに成功したアプリの許可イベントをキャッチすることができます:あなたはアプリの承認からのアクセストークンを取得するためにgetOAuth2Tokenを呼び出す必要がどこ

https://github.com/dropbox/dropbox-sdk-java/blob/7ecc15cf0f51d6ae2ba5cdb334aac2c2f3474b87/examples/android/src/main/java/com/dropbox/core/examples/android/DropboxActivity.java#L16

だこと。

+0

これは私が最初に考えたことですが、問題は「Dropboxにログイン」ボタンがある画面に入るとすぐにギャラリーに入りたくないということです。 Dropbox-Buttonを押すとギャラリーに行きたい。 –

0

さて、私はこのような繰り返しのRunnableと私の問題を解決:

public class MyActiviry extends BaseActivity { 

    // ... 

    private Handler handler; 
    private Context context; 

    // ... 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 

     context = this; 
     handler = new Handler(); 

     // ... 
    } 

    // ... 

    public void selectFromDropBox(DropboxImageProvider dropboxImageProvider) { 
     final DropboxImageProvider provider; 

     showLoadingOverlay(); 

     if (dropboxImageProvider == null) { 
      provider = DropboxImageProvider.getInstance(/* ... */); 
     } else { 
      provider = dropboxImageProvider; 
     } 

     handler.post(new Runnable() { 
      @Override 
      public void run() { 
       if (provider.isLoggedIn()) { 
        provider.requestThumbnails((Activity) context); 
       } else { 
        handler.postDelayed(this, 3000L); 
       } 
      } 
     }); 
    } 

    // ... 

} 

それは最も美しい解決策ではないかもしれませんが、それは私のために動作します。

関連する問題