0

Facebookに接続する次のアクティビティがあります

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_facebook);
      mFacebook = SavvyActivityDelegate.get().getFacebook(this);
     if (mFacebook.isSessionValid()) {
         // TODO GET FB ACCESS TOKEN
        } else {
            mFacebook.authorize(this, FacebookConstants.PERMISSIONS, new AppFacebookDialogListener(FacebookActivity.this,mFacebook));
        }

public void onActivityResult(int request, int result, Intent data) {
      super.onActivityResult(request, result, data);
      mFacebook.authorizeCallback(request, result, data);


    }

使用されるダイアログリスナーは次のとおりです

    public class AppFacebookDialogListener implements Facebook.DialogListener {   
private final Activity activity;  
 private final Facebook facebook;

      public SavvyFacebookDialogListener(Activity activity, Facebook facebook) {
        this.activity = activity;
        this.facebook = facebook;
        Log.d(LogTag.app, "Facebook constructor");    // activity.finish();   }

  @Override   public void onComplete(Bundle values) {
    Log.d(LogTag.app, "Facebook authorization complete!");
    SharedPreferences.Editor editor = PreferenceManager.getDefaultSharedPreferences(activity).edit();
    editor.putLong("fb_access_expires", facebook.getAccessExpires());
    editor.putString("fb_access_token", facebook.getAccessToken());
    editor.commit();   }

  @Override   public void onFacebookError(FacebookError e) {
    Log.e(LogTag.app, e.getErrorType() + ": " + e.getMessage() + " (code: " + e.getErrorCode() + ")", e);   }

  @Override   public void onError(DialogError e) {
    Log.e(LogTag.app, e.getMessage(), e);   }

  @Override   public void onCancel() {
    Log.d(LogTag.app, "Facebook authorization was cancelled");   } }

アクティビティ開始時のログ ステートメント

06-06 15:09:19.314: I/ActivityManager(404): pid 17947 から u0 {cmp=com.biggu.shopsavvy/.FacebookActivity} を開始 06-06 15:09:19.392: D/ShopSavvy(17947): Facebookコンストラクター 06-06 15:09:19.400: I/ActivityManager(404): pid 17947 06-06 15:09:19.415 から u0 {cmp=com.facebook.katana/.ProxyAuth (エクストラあり) を開始: I/ActivityManager (404): pid 15214 から u0 {cmp=com.facebook.katana/.ProxyAuthDialog (エクストラあり)} を開始します

ログによると、ダイアログコンストラクターが呼び出されますが、コールバックメソッドは呼び出されません。

Facebook アプリがインストールされていない場合、コードは正常に動作し、コールバック認証は完了しますが、Facebook アプリを使用してユーザーがログインしているデバイスでは、コードが奇妙に動作します。前もって感謝します 。

4

0 に答える 0