2011-05-09 5 views
4

제목에서 알 수 있듯이 문제가 있습니다. onActivityResult()가 호출되지 않기 때문에 authorize() 호출을 작성하지만 authorizeCallback()을 호출 할 수 없습니다. SSO는 권한 설정 화면 (Do not Allow/Allow)과 Facebook 승인 설정이 Facebook 설정 페이지에 표시되므로 완료됩니다. 어떤 아이디어? 나는 그것이 activity의 launchMode와 관련이있을 것이라고 생각했지만 "singleInstance"를 제거하고 차이를 만들지 않았다.facebook android SSO가 완료되었지만 활동이 onActivityResult()를 호출하지 않고 닫습니다.

위에서 언급 한 것처럼 Facebook.java에서 사용 권한 활동이 시작되었는지 확인할 수 있습니다.

try { 
     Log.e("@@@", "Starting activity"); 
     activity.startActivityForResult(intent, activityCode); 
    } catch (ActivityNotFoundException e) { 
     didSucceed = false; 
    } 

아래와 같은 코드를 확인할 수 있습니다.

내가 onActivityResult를()에 AuthorizeCallback를() 메소드를 구현했습니다

:

@Override 
public void onActivityResult(int requestCode, int resultCode, Intent data) { 
    mStateHolder.getFacebook().authorizeCallback(requestCode, resultCode, data); 
} 

..하지만 호출 적이 없어요.

facebook.authorize(this, new String[]{ "user_birthday" }, new DialogListener() { 
     public void onComplete(Bundle values) { 
      Log.e(TAG, "onComplete()"); 
      // I make a request here.. 
     } 
     // ...with the other methods as well 
} 

기타 잠재적으로 유용한 정보 : 페이스 북의 응용 프로그램이 설치되어 2.3.4

  • 제가 넥서스 원을 실행 해요
  • 그것은 잘 작동 다음과 같이 내가 사용했던 권한 부여 방법은 Dialog 메서드를 강제로 수행하지만 SSO를 작동 시키려고합니다.
  • 편집 : Urgh! 많이 검색 한 후에 문제를 발견했습니다. 인 텐트에 불량 Intent.FLAG_ACTIVITY_NO_HISTORY 플래그가 있습니다 (스택에서 활동을 유지하지 않음). 이 질문에 답변 해 주신 모든 분들께 감사드립니다.

    EDIT2 : launchMode = singleInstance를 제거하면 차이가 너무 커집니다. "패키지 서명을 읽지 못했습니다"오류가 발생하기 시작했습니다.

    +0

    'activityCode'의 값은 무엇입니까? 두 번 실수로'0'을 사용했고'Activity '가'startActivityForResult()'로 시작 되더라도'onActivityResult()'를 호출하지 않는 문서를 두 번 보았습니다. – LeffelMania

    답변

    0

    인증 활동을 어떻게 마무리하고 있습니까? 결과 유형을 설정하고 값을 다시 보내야합니다. 예 :

    Intent data = new Intent(); 
    data.putExtra(ApplicationConstants.EXTRA_IS_DONE, true); 
    setResult(RESULT_OK, data); 
    finish(); 
    
    관련 문제