Android 验证已登录到Facebook并打开活动

Android 验证已登录到Facebook并打开活动,android,facebook,facebook-login,Android,Facebook,Facebook Login,我遇到了一个问题,在用户打开应用程序时看到的第一个活动中,我有一个Facebook登录按钮。问题是,如果他们已经登录到Facebook,我会收到一条消息说我已经登录,但我只能选择注销,而不能继续使用该应用程序。所以基本上我每次都要注销,然后重新登录才能真正使用这个应用程序。所以它说我已登录,一切正常,但我无法继续我的应用程序的下一个活动。我不确定这是否是有意的,我没有实现什么,或者这是否是一个问题。这是我的密码: 我的onCreate方法: @Override protected void on

我遇到了一个问题,在用户打开应用程序时看到的第一个活动中,我有一个Facebook登录按钮。问题是,如果他们已经登录到Facebook,我会收到一条消息说我已经登录,但我只能选择注销,而不能继续使用该应用程序。所以基本上我每次都要注销,然后重新登录才能真正使用这个应用程序。所以它说我已登录,一切正常,但我无法继续我的应用程序的下一个活动。我不确定这是否是有意的,我没有实现什么,或者这是否是一个问题。这是我的密码:

我的onCreate方法:

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    FacebookSdk.sdkInitialize(this.getApplicationContext());
    setContentView(R.layout.main_login);
    callbackManager = CallbackManager.Factory.create();
登录按钮的设置:

loginButton.setReadPermissions(Arrays.asList("public_profile, email, user_friends"));
}
    LoginManager.getInstance().registerCallback(callbackManager,
            new FacebookCallback<LoginResult>() {
                @Override
                public void onSuccess(LoginResult loginResult) {
                    Intent myIntent = new Intent(getApplicationContext(), myActivity.class);

                    accessToken = AccessToken.getCurrentAccessToken();

                    GraphRequest request = GraphRequest.newMeRequest(
                            accessToken,
                            new GraphRequest.GraphJSONObjectCallback() {
                                @Override
                                public void onCompleted(
                                        JSONObject object,
                                        GraphResponse response) {
                                    Log.v("LoginActivity", response.toString());
                                }
                            }

                    );
                    Bundle loginBundle = new Bundle();
                    loginBundle.putString("userInfo", "id, first_name, last_name, email");
                    request.setParameters(loginBundle);
                    request.executeAsync();

                    myIntent.putExtras(loginBundle);

                    startActivity(myIntent);

                    finish();
                }

                @Override
                public void onCancel() {
                    // nothing yet
                }

                @Override
                public void onError(FacebookException exception) {
                    // nothing yet
                }
            });

您可以检查用户是否已登录并直接转到您的活动

  if (AccessToken.getCurrentAccessToken()!=null){
        Intent myIntent = new Intent(getApplicationContext(), myActivity.class);
        startActivity(myIntent);
    }

尝试这样做,在用户完成登录后,在共享首选项中设置一个布尔标志,将标志设置为true,同时打开应用程序,检查标志open the log in activity only布尔标志是否为false,否则打开主活动。
并为用户提供一个类似于菜单的注销选项

  if (AccessToken.getCurrentAccessToken()!=null){
        Intent myIntent = new Intent(getApplicationContext(), myActivity.class);
        startActivity(myIntent);
    }