2014-07-16 2 views
1

앱의 실행기 활동을 LoginActivity라고합니다 (같은 이름의 Facebook SDK 활동과 혼동하지 마세요). 여기에는 아래에 표시된 startFacebookLogin() 메소드를 시작하는 "Facebook에 로그인"버튼이 있습니다. 앱이 Facebook 사용자 계정에 액세스 할 수 있다는 점에서 결과가 효과적입니다. 그러나 사용자를위한 프로세스는 매우 못 생기고 전면에 여러 개의 화면이 깜박입니다. - startFacebookLogin()를 Android에서 악성 Facebook 인증 프로세스가 개선 되었습니까?

  • 페이스 북 SDK의 LoginActivity 호출되는
  • 페이스 북 인증 UI 표시 간단하게 시작하지만 보통

    1. LoginActivity 버튼에서 로그인을 보여주는 시작하고 사용자가 버튼을 탭 :이 일어나는 것이다 이전에 인증 된 경우 즉시 종료
    2. 응용의 LoginActivity은 (하지 페이스 북의가) 볼을 다시
    3. MainActivity는
    01을 시작합니다

    로그인 버튼을 누른 후에는 전체 화면이 네 번 다시 그려지고 Facebook 인증 화면이 흰색이지만 앱의 모든 활동이 어둡습니다. 꽤 시각적 인 폭행입니다. 이 화면 중 일부는 분명히 5 번이지만 필수 일 수도 있습니다 ...

    Facebook SDK는 사용자가이 앱으로 이미 인증 받았기 때문에 곧바로 로그인하게됩니다. UI가 전혀 표시되지 않는 이유는 무엇입니까? ? 이 문제를 해결할 방법이 없나요? 아니면 Facebook SDK와 함께 살아야합니다.

    사용자가 로그인해야하는 경우에도 위의 2와 3의 불만을 해결하기 위해 수행 할 수있는 작업이 있습니까? Facebook SDK가 UI를 열지 않고 사용자가 인증되었는지 확인할 수 있습니까?

    private void startFacebookLogin() { 
        Session.openActiveSession(this, true, new Session.StatusCallback() { 
         // callback when session changes state 
         @Override 
         public void call(Session session, SessionState state, Exception exception) { 
          if (session.isOpened()) { 
           Request.newMeRequest(session, new Request.GraphUserCallback() { 
            @Override 
            public void onCompleted(GraphUser user, Response response) { 
             if (user != null) { 
              saveUserNameAndStartMainActivity(user.getId()); 
             } 
            } 
           }).executeAsync(); 
          } 
         } 
        }); 
    } 
    
    private void saveUserNameAndStartMainActivity(String userId) { 
        ((EmbarApplication)getApplication()).saveUserId(userId); // saves to shared prefs 
        openMainActivity(); // starts the main activity 
    } 
    
  • 답변

    0

    활성 세션을

    Session s = Session.getActiveSession(); 
    if (s.isOpened()) { 
        // user is authenticated, skip all login stuff 
    } 
    

    를 잡아 경우, 당신은 사용자를 말할 수 있어야는 어떤 UI 터지는없이 인증됩니다.

    관련 문제