2015-06-29 4 views
0

Я работаю с API-интерфейсом Box с Android. Я использую Android Studio и тестирую симулятор.Android Box API не может функционировать после первоначального OAuth

У меня есть кнопка, которую я использую для инициирования запроса OAuth, после аутентификации я возвращаюсь к своему приложению, а другая кнопка должна отображаться для выполнения других задач (я планирую добавить бесплатное/используемое/общее пространство).

Я использую следующий код, но как только я вернусь в свое приложение, другая кнопка не появится, и если я нажму на свою начальную кнопку, ничего не произойдет.

Может кто-нибудь указать мне в правильном направлении, пожалуйста?

Спасибо.

private void getUserIdUsingBox() { 
    BoxConfig.CLIENT_ID = BoxController.BOX_CLIENT_ID; 
    BoxConfig.CLIENT_SECRET = BoxController.BOX_SECRET; 
    BoxSession session = new BoxSession(this); 
    session.authenticate(); 

} //getUserIdsUsingBox 

public void onLinkBox(View view) { getUserIdUsingBox(); } 

private void invalidate() { 
    StringBuilder msg = new StringBuilder("List of available controllers: "); 
    for (Controller controller : mManager.getAvailableControllers()) { 
     msg.append("\n" + controller.getClass().getSimpleName()); 
    } 
    mText.setText(msg); 

    List<LinkedAccount> linkedAccounts = mManager.getAvailableAccounts(); 
    for (LinkedAccount acct : linkedAccounts) { 
     if (acct.getServiceName().equals(GoogleDriveController.NAME)) { 
      mLinkGoogleDriveButton.setVisibility(View.GONE); 
      mTestGoogleDriveButton.setVisibility(View.VISIBLE); 
     } 
     if (acct.getServiceName().equals(DropboxController.NAME)) { 
      mLinkDropboxButton.setVisibility(View.GONE); 
      mTestDropboxButton.setVisibility(View.VISIBLE); 
     } 

     if (acct.getServiceName().equals(BoxController.NAME)) 
     { 
      mLinkBoxButton.setVisibility(View.GONE); 
      mTestBoxButton.setVisibility(View.VISIBLE); 
     } 
    } 
} 
+0

Можете вставить еще свой код? Неясно, как подключаются ваши логики пользовательского интерфейса и обратные вызовы onClick. – Greg

+0

Теперь я включил еще один код – Parth

ответ

1

Как упоминалось greg - было бы полезно увидеть вашу логику пользовательского интерфейса. Но что-то в этом роде должно работать:

final Button btnToAuthenticate = (Button) findViewById(R.id.auth_box_btn); 
    final Button btnAfterAuthenticate = (Button) findViewById(R.id.box_action_btn); 
    BoxConfig.CLIENT_ID = BoxController.BOX_CLIENT_ID; 
    BoxConfig.CLIENT_SECRET = BoxController.BOX_SECRET; 
    BoxSession session = new BoxSession(this); 

    btnToAuthenticate.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View view) { 
      mSession.authenticate(); 
     } 
    }); 
    mSession.setSessionAuthListener(new BoxAuthentication.AuthListener() { 
     @Override 
     public void onRefreshed(BoxAuthentication.BoxAuthenticationInfo boxAuthenticationInfo) { 

     } 

     @Override 
     public void onAuthCreated(BoxAuthentication.BoxAuthenticationInfo boxAuthenticationInfo) { 
      btnAfterAuthenticate.setVisibility(View.VISIBLE); 
     } 

     @Override 
     public void onAuthFailure(BoxAuthentication.BoxAuthenticationInfo boxAuthenticationInfo, Exception e) { 

     } 

     @Override 
     public void onLoggedOut(BoxAuthentication.BoxAuthenticationInfo boxAuthenticationInfo, Exception e) { 

     } 
    });