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