Wie um zu überprüfen, die Nutzer bereits angemeldet in android Facebook SDK 4.0)

Hier ist mein code:

public class LocationDetailActivity extends ActionBarActivity {

private CallbackManager mCallBackManager;
private FacebookCallback<LoginResult> mCallBack;
private ImageView mBtnBack;
AccessToken token;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.location_detail_layout);
    FacebookSdk.sdkInitialize(getApplicationContext());
    share = (ImageButton) findViewById(R.id.imageShare);
    token  = AccessToken.getCurrentAccessToken();

 share.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                if(token == null) {
                    final Dialog dialog = new Dialog(LocationDetailActivity.this);
                    dialog.setContentView(R.layout.share_custom_dialog);
                    dialog.setTitle("Login as:");
                    dialog.show();
                    mCallBackManager = CallbackManager.Factory.create();
                    mCallBack = new FacebookCallback<LoginResult>() {
                        @Override
                        public void onSuccess(LoginResult loginResult) {

                            Profile profile = Profile.getCurrentProfile();
                            if(profile!=null){
                                dialog.cancel();
                                ShareDialog shareDialog = new ShareDialog(LocationDetailActivity.this);
                                if(shareDialog.canShow(ShareLinkContent.class)){
                                ShareLinkContent content = new ShareLinkContent.Builder()
                                        .setContentUrl(Uri.parse("https://developers.facebook.com"))
                                        .build();
                                    shareDialog.show(content);
                                }
                            }
                        }

                        @Override
                        public void onCancel() {

                        }

                        @Override
                        public void onError(FacebookException e) {

                        }


                    };
                    LoginButton loginButton = (LoginButton)dialog.findViewById(R.id.login_button);
                    loginButton.setReadPermissions("user_friends");
                    loginButton.registerCallback(mCallBackManager, mCallBack);
                }
                else if(token != null){
                    ShareDialog shareDialog = new ShareDialog(LocationDetailActivity.this);
                    if(shareDialog.canShow(ShareLinkContent.class)){
                        ShareLinkContent content = new ShareLinkContent.Builder()
                                .setContentUrl(Uri.parse("https://developers.facebook.com"))
                                .build();
                        shareDialog.show(content);
                    }
                }

            }
        });



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

}

Möchte ich überprüfen, ob der Benutzer bereits angemeldet-in von Facebook " app. Wenn Sie nicht, meine app zeigt eine Benutzerdefinierte Dialogfeld mit den login-button.Sonst, meine app zeigt Teilen-Dialog. Aber wenn ich auf meine Schaltfläche, die Benutzerdefinierte Dialogfeld immer zeigte, auch ich angemeldet in Facebook. Bitte helfen Sie mir dieses Problem zu beheben. Vielen Dank im Voraus! 😉

Mehr info: AccessToken token = AccessToken.getCurrentAccessToken();

  • wenn Sie Ihre token?
  • Ich erstelle token im onCreate in der MainActivity.Dies ist nur zum testen, also die MainActivity ist sehr einfach,es enthält nur 1 Taste.
  • hast u prüfen Sie, ob Ihr token-refreshs nach jedem login/logout-Aktion? setzen Sie einige Rückruf-Aktion?
  • Ich glaube, ich habe. Ich aktualisierte mit der gesamten Aktivität. Dies ist das erste mal, dass ich Facebook SDK, bitte helfen Sie mir, um es zu überprüfen 😉
  • schauen Sie einfach nur auf Ihren code, wenn Sie klicken Sie auf die "teilen" - er überprüft, ob token null ist... wenn er null ist (sieht aus wie seine immer) fordern Sie ein login-dialog. versuchen Sie, innerhalb von onSuccess() einen neuen Wert für token (getCurrentAccessToken ()), und da müssen Sie einen neuen Wert für Ihre neue session.
  • bitte, siehe meine Antwort. hoffe es hilft
  • Ich glaube, ich wusste, was das problem ist. Ich muss zunächst anmelden, um Facebook durch Facebook ist LogginButton in meinem app zu bekommen AccessToken oder was es sonst immer null, richtig? Also ich denke AccessTokenTracker nicht beheben können, dass und was ich wissen möchte ist, wie bekomme ich AccessToken von FaceBook-App zu deklarieren, die in meiner app.
  • denken Sie daran, Sie können bereits eine aktive Sitzung im Speicher zu vermeiden, wiederholen Sie die Anmeldung... bitte siehe Antwort unten, zu sehen, ob es hilft.
  • Möglich, Duplikat der Wie um zu überprüfen, ob der Benutzer angemeldet ist mit FB SDK 4.0 für Android?

InformationsquelleAutor naji kun | 2015-05-05
Schreibe einen Kommentar