2011-06-18 10 views
2

Facebook SSOサービスを使用してユーザーを認証したいと考えています。私はかなりの痛みはなかった公式のAndroid Facebook sdkで基本的なログインを処理することができましたが、sdkがデバイスのローテーションを処理できないようです - 少なくとも、正しく動作する方法を見つけることができませんでした。 Android Facebook sdkはデバイスのローテーションを正しく処理できませんか?

認証コード:

loginButtonFacebook.setOnClickListener(new View.OnClickListener() { 
      @Override 
      public void onClick(View v) { 
       // Do FB login 
       facebook.authorize(LoginActivity.this, new DialogListener() { 
        @Override 
        public void onComplete(Bundle values) { 
         Toast.makeText(LoginActivity.this, "Facebook login successful", Toast.LENGTH_SHORT).show(); 

         Log.d(TAG, "FACEBOOK LOGIN SUCCESSFUL"); 
         //loginFB(facebook.getAccessToken()); 
        } 

        @Override 
        public void onFacebookError(FacebookError error) { 
         Toast.makeText(LoginActivity.this, "FacebookError:" +error.getLocalizedMessage(), Toast.LENGTH_SHORT).show(); 
        } 

        @Override 
        public void onError(DialogError e) { 
         Toast.makeText(LoginActivity.this, "Error: "+e.getLocalizedMessage(), Toast.LENGTH_SHORT).show(); 
        } 

        @Override 
        public void onCancel() { 
         Toast.makeText(LoginActivity.this, "Cancelled!", Toast.LENGTH_SHORT).show(); 
        } 
       }); 
      } 
     }); 
My活動もFBのログイン活動からの結果を処理する必要がある

@Override 
    public void onActivityResult(int requestCode, int resultCode, Intent data) { 
     super.onActivityResult(requestCode, resultCode, data); 

     facebook.authorizeCallback(requestCode, resultCode, data); 
    } 

これは動作しますが、facebook.authorize(...)メソッド現在のアクティビティの参照が必要なので、後でコールバックを行うことができます。しかし、ユーザーがFacebookの承認アクティビティに入っているときにデバイスを回転させると、前のアクティビティが破棄されます。だから、ユーザーが私のアプリを承認した後、私はこれについてのコールバックを取得しません。

誰にでもこの解決策が見つかりましたか?あなたの活動中にあなたの活動の名の下に、あなたのマニフェストファイル内

おかげ

答えて

1

だけで次の行を追加します

android:configChanges="orientation" 

@Override 
public void onConfigurationChanged(Configuration newConfig) 
{ 
    super.onConfigurationChanged(newConfig); 
    ................ 
} 

は、私は通常、嫌いherehere

+0

はそれを使用しないでください.com/a/7990543/1118475 –

1

を参照してください。推奨する彼がFacebookの使用するActivityは、悪影響を及ぼすことなくポートレートにロックすることができます。それがしているのは、不明確なProgressBarです。

com.facebook.LoginActivityでの活動のためのマニフェストをチェックして、それが次の性質を持っていることを確認します。http:// stackoverflowのをあなたは何をやっている確信している場合を除き

<activity 
    android:configChanges="keyboardHidden" 
    android:name="com.facebook.LoginActivity" 
    android:screenOrientation="portrait" /> 
関連する問題